3

我有一个字符串 $str 包含以下信息

板球击球:印度得分:99/2 日期:2013 年 6 月 27 日

我想把这个字符串分成 4 个部分,应该是这样的:

$part1 = "Cricket";
$part2 = "Batting:India";
$part3 = "Score:99/2";
$part4 = "Date:27 June 2013";

我尝试使用 explode() 但问题是值并不总是相同。例如,它可能是:

Cricket Batting:South Africa Score:203/10 Date:7 May 2013
or this:
Cricket Batting:Australia Score:1/1 Date:27 September 2019

所以,当我使用explode South 和africa 时,会分裂成不同的变量。我不能使用 wordwrap() 因为字符串的长度会不时变化。

4

2 回答 2

4

您可以将preg_split与此模式一起使用:

~ (?=Batting|Score|Date)~
于 2013-06-27T14:36:19.983 回答
3

preg_split函数是这种情况下的最佳解决方案:

preg_split('/\s(?=\w+:)/ ', $str);

分裂点解释如下:

\s- 匹配一个空格

(?=\w+:)- 匹配一个单词后跟一个冒号的正向前瞻

于 2013-06-27T14:54:29.027 回答