【问题标题】:Regex for getting text between the last brackets ()用于在最后一个括号 () 之间获取文本的正则表达式
【发布时间】:2012-05-14 15:00:28
【问题描述】:

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

例如

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

结果应该是

value_b

感谢您的帮助

【问题讨论】:

    标签: javascript regex match


    【解决方案1】:

    试试这个

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

    here on regexr

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

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

    【讨论】:

      【解决方案2】:

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

      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

      【讨论】:

        【解决方案3】:
        /\([^()]+\)(?=[^()]*$)/
        

        前瞻,(?=[^()]*$),断言在输入结束之前没有更多的括号。

        【讨论】:

        • 这给了我文本和括号。 (value_b).. 我希望 o/p 是不带括号的 value_b..
        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-03-14
          • 1970-01-01
          • 1970-01-01
          • 2019-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多