我想匹配最少括号内的任何内容但排除其中的另一个括号。
例1:
串: (((1)))(2) 结果: 2
串:
(((1)))(2)
结果:
2
例2:
串: (((1)2)3) 结果: 3
(((1)2)3)
3
例3:
串: (1(2(3))) 结果: 1
(1(2(3)))
1
我的正则表达式是:
\(((?>[^\(\)]+|(?R))*)\)
不幸的是结果并不相同。
试试这个 :
(?<!\({2}|\(\d\(|\))(\d)|(\d)(?:\)[^\(\)\d])
DEMO