这是我的字符串示例:
$string = 'Vivamus non risus non diam {some-text-here} varius sollicitudin in non dui. Phasellus egestas {some-more-text-here} quis augue eu pharetra. Curabitur rutrum non lectus et aliquam. Fusce quis rutrum magna. Sed at tristique dui, scelerisque tincidunt tortor. Integer a nibh gravida urna pulvinar vehicula. Curabitur ut felis ut mi imperdiet condimentum {and-some-goes-here-too}. Vestibulum sit amet {of-course-here-as-well} diam mi. Quisque diam dui, convallis dapibus suscipit sit amet, auctor in turpis.';
Run Code Online (Sandbox Code Playgroud)
如果你注意到{these-things-with-text-in-them}整个地方都有胡椒$string.我用这个函数将它们拉出来$string.
preg_match_all('/\{(.*?)\}/', $string, $bracket_data);
print '<pre>'; print_r($bracket_data[1]); print '</pre>';
Run Code Online (Sandbox Code Playgroud)
哪个会吐出这个:
Array
(
[0] => some-text-here
[1] => some-more-text-here
[2] => and-some-goes-here-too
[3] => of-course-here-as-well
)
Run Code Online (Sandbox Code Playgroud)
这很好地解决了这个问题.我想有相同的结果,但随着部分$string是没有括号内,仍然使用preg_match_all().因此,在这种情况下使用$string作为示例,期望的结果将是:
Array
(
[0] => Vivamus non risus non diam
[1] => varius sollicitudin in non dui. Phasellus egestas
[2] => quis augue eu pharetra. Curabitur rutrum non lectus et aliquam. Fusce quis rutrum magna. Sed at tristique dui, scelerisque tincidunt tortor. Integer a nibh gravida urna pulvinar vehicula. Curabitur ut felis ut mi imperdiet condimentum
[3] => . Vestibulum sit amet
[4] => diam mi. Quisque diam dui, convallis dapibus suscipit sit amet, auctor in turpis.
)
Run Code Online (Sandbox Code Playgroud)
有没有人对我现有的正则表达式有任何建议或批评?
注意:括号内的文字可以在任何安排中找到.他们可以在开头,肩并肩,最后,任何数量.括号外的文本也是如此
使用相同的正则表达式preg_split().我还添加\s*了正则表达式以从匹配中排除空格.
$arr = preg_split('/\s*\{(.*?)\}\s*/', $string);
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => Vivamus non risus non diam
[1] => varius sollicitudin in non dui. Phasellus egestas
[2] => quis augue eu pharetra. Curabitur rutrum non lectus et aliquam. Fusce quis rutrum magna. Sed at tristique dui, scelerisque tincidunt tortor. Integer a nibh gravida urna pulvinar vehicula. Curabitur ut felis ut mi imperdiet condimentum
[3] => . Vestibulum sit amet
[4] => diam mi. Quisque diam dui, convallis dapibus suscipit sit amet, auctor in turpis.
)
Run Code Online (Sandbox Code Playgroud)