对于像asdftheremainderhere
这样的字符串,使用正则表达式匹配asdf
将字符串拆分为theremainderhere
和asdf
的简单方法是什么?
我尝试使用:
preg_match('/asdf|ghik/', 'asdftheremainderhere', $matches);`
但只有asdf
是$matches
的唯一元素。
答案 0 :(得分:2)
在$matches
数组$matches[0]
中将是完整模式匹配,$matches[1]
将是第一个捕获组(asdf|ghik)
,$matches[2]
将是第二次捕获组(.*)
,任何字符为0次或更多次:
preg_match('/(asdf|ghik)(.*)/', 'asdftheremainderhere', $matches);
print_r($matches);
收率:
Array
(
[0] => asdftheremainderhere
[1] => asdf
[2] => theremainderhere
)
答案 1 :(得分:2)
您可以使用捕获组来实现这样的,不是吗?
preg_match('/(asdf)(.*)/', 'asdftheremainderhere', $matches);
并添加多行标记(如果您需要换行符,并希望它们在余数中。
)答案 2 :(得分:1)
您可以将preg_split与\K
一起使用,以保存分隔符
print_r(preg_split('/(asdf|ghik)\K/', 'asdftheremainderhere'));
结果
Array
(
[0] => asdf
[1] => theremainderhere
)