【发布时间】:2020-12-19 02:00:29
【问题描述】:
我用过
let regExp = /\(([^)]+)\)/;
提取
(test(()))
来自
aaaaa (test(())) bbbb
但我只得到这个
(test(()
如何修复我的正则表达式?
【问题讨论】:
标签: regex
我用过
let regExp = /\(([^)]+)\)/;
提取
(test(()))
来自
aaaaa (test(())) bbbb
但我只得到这个
(test(()
如何修复我的正则表达式?
【问题讨论】:
标签: regex
不要使用否定字符集,因为括号(( 和 ))可能会出现在您想要的匹配项中。而是贪婪地重复,以便您尽可能匹配,直到引擎回溯并找到右侧的第一个):
console.log(
'aaaaa (test(())) bbbb'
.match(/\(.*\)/)[0]
);
请记住,这(以及一般的 JS 正则表达式解决方案)不能保证括号平衡,至少在没有额外的后处理/验证的情况下不能保证。
【讨论】: