【问题标题】:Extract all chars between parenthesis [duplicate]提取括号之间的所有字符[重复]
【发布时间】:2020-12-19 02:00:29
【问题描述】:

我用过

let regExp = /\(([^)]+)\)/;

提取

(test(())) 

来自

aaaaa (test(())) bbbb

但我只得到这个

(test(()

如何修复我的正则表达式?

【问题讨论】:

标签: regex


【解决方案1】:

不要使用否定字符集,因为括号(())可能会出现在您想要的匹配项中。而是贪婪地重复,以便您尽可能匹配,直到引擎回溯并找到右侧的第一个)

console.log(
  'aaaaa (test(())) bbbb'
    .match(/\(.*\)/)[0]
);

请记住,这(以及一般的 JS 正则表达式解决方案)不能保证括号平衡,至少在没有额外的后处理/验证的情况下不能保证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-01
    • 2012-07-15
    • 1970-01-01
    • 2015-10-16
    • 2017-03-09
    • 1970-01-01
    • 2017-11-10
    • 2020-01-26
    相关资源
    最近更新 更多