正则表达式匹配最少括号内的任何内容

问题描述 投票:2回答:1

我想匹配最少括号内的任何内容但排除其中的另一个括号。

例1:

串:

(((1)))(2)

结果:

2

例2:

串:

(((1)2)3)

结果:

3

例3:

串:

(1(2(3)))

结果:

1

我的正则表达式是:

\(((?>[^\(\)]+|(?R))*)\)

不幸的是结果并不相同。

php regex preg-match
1个回答
0
投票

试试这个 :

(?<!\({2}|\(\d\(|\))(\d)|(\d)(?:\)[^\(\)\d])

DEMO

© www.soinside.com 2019 - 2024. All rights reserved.