Javascript 正则表达式匹配最后一个括号集的内容

Javascript 正则表达式匹配最后一个括号集的内容,javascript,regex,Javascript,Regex,目前,我在括号内有一个用于匹配内容(组1)的正则表达式:\(.*) 它工作得很好,但我希望它只匹配一组括号的最后一个匹配项: 测试:“(否(是)” 对于我的正则表达式,组1是no(yes),但我希望它返回yes 谢谢大家! 精度:这与括号的最后一个集有关,这意味着“(否(yes+(1-3))”应返回yes+(1-3) 因此,\([^()]+)\不起作用,因为最后一组括号的内容可能包含括号。根据提供的示例,您可以尝试以下正则表达式: \(((?:\([^()]*\)\[^()]*)\)[^(]*$

目前,我在括号内有一个用于匹配内容(组1)的正则表达式:
\(.*)

它工作得很好,但我希望它只匹配一组括号的最后一个匹配项:

测试:“(否(是)”
对于我的正则表达式,组1是
no(yes)
,但我希望它返回
yes

谢谢大家!

精度:这与括号的最后一个集有关,这意味着“(否(yes+(1-3))”应返回
yes+(1-3)


因此,
\([^()]+)\
不起作用,因为最后一组括号的内容可能包含括号。

根据提供的示例,您可以尝试以下正则表达式:

\(((?:\([^()]*\)\[^()]*)\)[^(]*$

正则表达式详细信息:

  • \(
    :匹配
  • :启动捕获组
    • (?:
      :启动非捕获组
      • \([^()]*\)
        :匹配
        (…)
        子字符串
      • |
        :或
      • [^()]
        :匹配一个非
    • )*
      :结束非捕获组。重复此组0次或更多次
  • :结束捕获组
  • \)
    :匹配结束
  • [^(]*
    :确保结束前没有
  • $
    :结束

使用
*\(.*?)
,获取组1值。@WiktorStribiżew它不工作你的正则表达式工具/风格是什么?@anubhava javascriptBut
(不(是+(1-3))
不平衡这只适用于两个嵌套级别。我已进一步更新了它。
(A((B))C)
@Gruvw:
(A((B))C)
有所有平衡圆括号,但您的示例显示了不平衡圆括号,我在注释中也证实了这一点。根据给定的要求,此匹配
(B)
,因为这是最后一对
(…)
。如果您用更多细节更新您的问题,我将尝试调整,但是请记住Javascript正则表达式不支持PCRE.Nice!@anubhava这样的递归模式匹配-我创建了,
(?