我需要将字符串分成多个部分。匹配的模式不能出现在其他匹配的组中。字符串示例:
baranything
baranythingbaz
预期输出:
array(
0 => baranything
1 => bar
2 => anything
3 =>
)
array(
0 => baranything
1 => bar
2 => anything
3 => baz
)
最简单的解决方案可能类似于(bar)(.*)(baz|)
,但是它将所有剩余的字符串放入[2]元素中,并且没有捕获到“ baz”。
答案 0 :(得分:1)
您可以使用
^(bar)(.*?)(baz|$)
详细信息
^
-字符串的开头
(bar)
-第1组:bar
(.*?)
-第2组:除换行符以外的任何0+个字符,并且尽可能少(baz|$)
-baz
或字符串结尾。