在 PHP 中,我试图完成一个简单的任务,即使用 preg_match_all
我有一个像这样的字符串,例如0(a)1(b)2(c)3(d)4(e)5(f)
我试图返回每个 ()
内的所有内容,但要尊重这些内容内可能存在转义括号的事实。
我尝试了多种组合,但我无法获得任何正则表达式来允许类似 4(here are some escaped parens\(\) more text)
返回此 这里有一些转义的括号\(\)更多文本
而不是这个这里有一些转义的括号\(\)
我有一个可以使用的正则表达式,但不能使用转义括号
[0-9]*\(([^转义括号])*?\)
有人可以告诉我如何实现这一目标吗?
最佳答案
您可以使用 negative look behind使您的正则表达式引擎仅匹配前面不带反斜杠的右括号:
\((.+?)(?<!\\)\)
查看演示 https://regex101.com/r/oU9sF2/1
关于PHP 正则表达式(如果存在转义括号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33289132/