欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于preg_split(),能否在获得被匹配正则表达式的字符串分割的字符串的同时获得匹配正则表达式的字符串本身?

程序员文章站 2022-05-04 14:34:23
...
如题

举例:
$reg = "([^@]+(?=\s))";print_r(preg_split($reg,"@张三 你好我是@李四 的朋友@王五不在家",PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_OFFSET_CAPTURE|PREG_SPLIT_NO_EMPTY));


结果
Array(    [0] => @    [1] =>  你好我是@    [2] =>  的朋友@王五不在家)


希望得到的是
Array(    [0] => @    [1] => 张三    [2] =>  你好我是@    [3] => 李四    [4] =>  的朋友@王五不在家)


查手册看到有个参数PREG_SPLIT_DELIM_CAPTURE :如果这个标记设置了,用于分隔的模式中的括号表达式将被捕获并返回。
但是没有被返回.....


回复讨论(解决方案)

参数位置错了

$reg = "/([^@]+(?=\s))/";print_r(preg_split($reg,"@张三 你好我是@李四 的朋友@王五不在家", -1, PREG_SPLIT_DELIM_CAPTURE |PREG_SPLIT_NO_EMPTY));
Array
(
[0] => @
[1] => 张三
[2] => 你好我是@
[3] => 李四
[4] => 的朋友@王五不在家
)

非常感?~~~~~~~??了.