regex 用于获取最后一个方括号之间的文本的正则表达式()

y1aodyip  于 2023-03-04  发布在  其他
关注(0)|答案(4)|浏览(310)

我想使用javascript提取最后()之间的文本
例如

var someText="don't extract(value_a) but extract(value_b)";
alert(someText.match(regex));

结果应该是

value_b

谢谢你的帮助

5w9g7ksd

5w9g7ksd1#

试试这个

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

看它here on regexr

var someText="don't extract(value_a) but extract(value_b)";
alert(someText.match(/\(([^)]*)\)[^(]*$/)[1]);

括号内的部分存储在捕获组1中,因此您需要使用match()[1]来访问结果。

kuuvgm7e

kuuvgm7e2#

一个有效的解决方案是让.*消耗最后一个(之前的所有内容

var str = "don't extract(value_a) but extract(value_b)";

var res = str.match(/.*\(([^)]+)\)/)[1];

console.log(res);

Here is a demo at regex101

vh0rcniy

vh0rcniy3#

/\([^()]+\)(?=[^()]*$)/

前瞻(?=[^()]*$)Assert在输入结束之前没有括号。

dluptydi

dluptydi4#

如果最后一个右括号总是在句尾,你可以使用乔纳森的答案。否则,类似下面的答案可能会起作用:

/\((\w+)\)(?:(?!\(\w+\)).)*$/

相关问题