1

如果我有以下字符串

$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
}

希望这是有道理的..

谢谢

4

2 回答 2

6

您可以使用前瞻 [docs]

preg_split("/(?=\d{4})/", $string, -1, PREG_SPLIT_NO_EMPTY)

演示

不知道为什么你<br/>的表情里有。您的字符串中没有 HTML(至少在此示例中没有)。

于 2011-07-30T13:00:10.257 回答
1

请改用 preg_match_all。

preg_match_all("/\d{4}[^\d]+/", $string, $matches);

匹配项将包含字符串中以 4 位数字开头并在下一个数字之前结束的所有部分。

您也可以过滤掉<br>使用括号。

于 2011-07-30T13:02:00.787 回答