PHP split string on word before colon(在冒号之前拆分Word上的PHP字符串)
问题描述
我有一个字符串,如下所示:
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);
输出:
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
这篇关于在冒号之前拆分Word上的PHP字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!