我有一个看起来像这样的字符串:
aaaaa: lorem ipsum bb: dolor sit amet ccc: no pro movet
将字符串拆分为数组并在 PHP 中获得以下结果的最佳方法是什么?
array[0]='aaaaa: lorem ipsum';
array[1]='bb: dolor sit amet';
array[2]='ccc: no pro movet';
我可以编写一个函数来查找每个“:”的位置,查找其前面的单词的长度,然后拆分字符串。但我想使用正则表达式有更简单的方法吗?
对于这种工作,我会使用preg_match_all
:
$str = 'aaaaa: lorem ipsum bb: dolor sit amet ccc: no pro movet';
preg_match_all('/\S+:.+?(?=\S+:|$)/', $str, $m);
print_r($m);
Output:
Array
(
[0] => Array
(
[0] => aaaaa: lorem ipsum
[1] => bb: dolor sit amet
[2] => ccc: no pro movet
)
)
解释:
\S+: : 1 or more NON space followed by colon
.+? : 1 or more any character not greedy
(?=\S+:|$) : lookahead, make sure we have 1 or more NON space followed by colon or end of string
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)