代码之家  ›  专栏  ›  技术社区  ›  user310291

提取第一个(和最后一个)[duplicate]之间的所有字符的Javascript Regex

  •  0
  • user310291  · 技术社区  · 4 年前

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

    提取

    (test(())) 
    

    aaaaa (test(())) bbbb
    

    但我只知道这个

    (test(()
    

    1 回复  |  直到 4 年前
        1
  •  4
  •   CertainPerformance    4 年前

    不要使用负数字符集,因为括号(两个 ( ) )可能出现在你想要的火柴里。在找到匹配的引擎之前,尽可能多地重复 ) 从右边:

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

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