正则表达式采用正确数量的括号

时间:2015-04-27 10:40:14

标签: c# regex

\w+\(([^\)]*)?\)+

此正则表达式将匹配

abc(1,3,abs(4) 
foo(1,3,abs(4)))

我想只匹配

abc(1,3,abs(4))

有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式:

^[a-z]+\((?>[^()]+|\((?<DEPTH>)|\)(?<-DEPTH>))*(?(DEPTH)(?!))\)$

它将匹配开头的a到z中的任何字符串,然后是匹配数量的括号及其中的所有内容。

A demo on regexstorm

在Expresso中测试:

enter image description here