我在尝试使用preg_split
时包含分隔符,但未成功。
print_r(preg_split('/((?:fy)[.]+)/', 'fy13 eps fy14 rev', -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY));
我想回来:
array(
[0] => fy13 eps
[1] => fy14 rev
)
将flags参数设置为PREG_SPLIT_DELIM_CAPTURE
:
如果设置了此标志,则将捕获并返回分隔符模式中带括号的表达式。
fy
在括号中,所以我不知道为什么这不起作用。
答案 0 :(得分:6)
您当前的方法无效,因为此处的“括号表达式”指的是捕获组,启动组的?:
使其成为非捕获组。因此,您可以通过将表达式更改为fy
来获取/(fy)/
,但我不认为这是您想要的,因为您将获得包含fy
,{{1 },13 eps
和fy
(带括号的表达式是结果中的单独条目)。
相反,请尝试以下方法:
14 eps
这使用前瞻功能在字符串中每次出现print_r(preg_split('/(?=fy)/', 'fy13 eps fy14 rev', -1, PREG_SPLIT_NO_EMPTY));
之前进行拆分。
答案 1 :(得分:0)