and*_*990 6 php regex non-greedy parentheses
我在一个文本中有两种类型的字符串:
a(bc)de(fg)h
a(bcd(ef)g)h
我需要在第一级括号之间获取文本。在我的例子中,这是:
公元前
fg
bcd(ef)g
我尝试使用/\((.+)\)/带有 Ungreedy (U) 标志的下一个正则表达式:
公元前
fg
bcd(ef
没有它:
bc)de(fg)
bcd(ef)g
两种变体都不能满足我的需求。也许有人知道如何解决我的问题?
这个问题几乎已经有了答案,但实现有点模糊。您可以使用不带 s 的接受答案中的逻辑~来获取此正则表达式:
\(((?:\[^\(\)\]++|(?R))*)\)
Run Code Online (Sandbox Code Playgroud)
使用此输出进行测试: