【发布时间】:2021-09-05 18:33:48
【问题描述】:
假设我有这样的文字
compute(max(a,b), min(c,d)) - fix(e)
我要提取两个字符串,最外面的括号:
(max(a,b), min(c,d))
(e)
在 .NET 中使用正则表达式。我已经尝试了几种解决方案,但都没有达到预期的效果:
-
\((?:[^()]|(?<open> \( )|(?<-open> \) ))+(?(open)(?!))\)匹配(a,b)、(c,d)和(e) -
\([^\(\)]+?\)也一样 -
\(.+\)匹配(max(a,b), min(c,d)) - fix(e) -
\(.+?\)匹配(max(a,b)、(c,d)、(e)
我找不到说“如果你匹配一个左括号并且你在括号内忽略它,但继续”。如何匹配所有且仅匹配最外层的括号?
【问题讨论】: