【发布时间】:2013-11-10 16:44:40
【问题描述】:
用于获取括号 ( ) 之间文本的正则表达式,我已经尝试过,但我没有得到正则表达式。对于这个例子
Regex.Match(script, @"\((.*?)\)").Value
例子:-
add(mul(a,add(b,c)),d) + e - sub(f,g)
Output =>
1) mul(a,add(b,c)),d
2) f,g
【问题讨论】:
-
如果您需要处理嵌套括号,您应该使用解析器而不是正则表达式。
-
@Lee:嗨.. lee,你能给我举个例子吗?
-
在这种情况下,您可以在每次匹配时递归地调用该正则表达式,直到没有匹配为止。
-
你需要使用平衡组,see this awesome answer
-
@sln 他正在尝试匹配“外部”括号中的内容。在 PCRE 中,您可以执行以下操作
\(((?:[^()]|(?R))*)\)