在冒号之前拆分Word上的PHP字符串 [英] PHP split string on word before colon

查看:24
本文介绍了在冒号之前拆分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字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆