如果我有以下字符串
$string = "
0001
a
b
c
d
e
0002
f
g
h
i
j
";
我将它与$r = preg_split("/\d{4}\n/", $string);
分开并且工作正常,但我也想要包含分隔字符串..
即。目前这给了我
Array [0] {
a
b
c
d
e
}
=> [1] {
f
g
h
i
j
}
但我希望它包含分隔符,即
Array [0] {
0001
a
b
c
d
e
}
=> [1] {
0002
f
g
h
i
j
}
希望有道理..
由于
利
答案 0 :(得分:6)
您可以使用lookahead [docs]:
preg_split("/(?=\d{4})/", $string, -1, PREG_SPLIT_NO_EMPTY)
不知道为什么你的表达中有<br/>
。您的字符串中没有HTML(至少在此示例中不是这样)。
答案 1 :(得分:1)
改为使用preg_match_all。
preg_match_all("/\d{4}[^\d]+/", $string, $matches);
匹配项将包含字符串中以4位数字开头并在下一位数字之前结束的所有部分。
您也可以使用括号过滤掉<br>
。