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