猿问

preg match remove 在前一组中捕获

我需要将字符串分成几部分。匹配模式不得出现在其他匹配组中。示例字符串:


baranything

baranythingbaz

预期输出:


array(

    0 => baranything

    1 => bar

    2 => anything

    3 =>

)

array(

    0 => baranything

    1 => bar

    2 => anything

    3 => baz

)

最简单的解决方案可能是,(bar)(.*)(baz|)但它将所有剩余的字符串放入 [2] 元素中,并且不会捕获“baz”。


茅侃侃
浏览 133回答 1
1回答

翻阅古今

您可以使用^(bar)(.*?)(baz|$)请参阅正则表达式演示和正则表达式图:细节^ - 字符串的开始(bar) - 第 1 组: bar(.*?) - 第 2 组:除换行符以外的任何 0+ 个字符,尽可能少(baz|$)-baz或字符串结尾。
随时随地看视频慕课网APP
我要回答