preg match remove 在上一组中捕获
preg match remove captured in previous group
我需要将字符串拆分成多个部分。匹配的模式不得出现在其他匹配组中。示例字符串:
baranything
baranythingbaz
预期输出:
array(
0 => baranything
1 => bar
2 => anything
3 =>
)
array(
0 => baranything
1 => bar
2 => anything
3 => baz
)
最简单的解决方案可能类似于 (bar)(.*)(baz|)
,但它会将所有剩余的字符串放入 [2] 元素中,并且不会捕获 "baz"。
您可以使用
^(bar)(.*?)(baz|$)
参见regex demo and the regex graph:
详情
^
- 字符串的开头
(bar)
- 第 1 组:bar
(.*?)
- 第 2 组:除换行字符外的任何 0+ 个字符,尽可能少
(baz|$)
- baz
或字符串结尾。
我需要将字符串拆分成多个部分。匹配的模式不得出现在其他匹配组中。示例字符串:
baranything
baranythingbaz
预期输出:
array(
0 => baranything
1 => bar
2 => anything
3 =>
)
array(
0 => baranything
1 => bar
2 => anything
3 => baz
)
最简单的解决方案可能类似于 (bar)(.*)(baz|)
,但它会将所有剩余的字符串放入 [2] 元素中,并且不会捕获 "baz"。
您可以使用
^(bar)(.*?)(baz|$)
参见regex demo and the regex graph:
详情
^
- 字符串的开头(bar)
- 第 1 组:bar
(.*?)
- 第 2 组:除换行字符外的任何 0+ 个字符,尽可能少(baz|$)
-baz
或字符串结尾。