繁体   English   中英

正则表达式查找大括号之间的最后一次出现

[英]Regex to find last occurrence between the braces

我需要在 JavaScript/ES6 中使用正则表达式来查找字符串中最后出现的括号之间的值

例如,如果这些是示例字符串:

  • “一些样本字符串(值 1)(更多)某物(值 2)”
  • “一些样本字符串(Val One),一些东西(Val Two)”
  • “一些样本字符串 (VOne) - 一些东西 (Vtwo)”

正则表达式应分别从上述字符串返回以下值

  • “价值 2”
  • “瓦尔二”
  • “V二”

str.match(/.*\((.*)\).*$/)[1]

适用于您的用例。

限制:这不适用于具有嵌套小括号的字符串。 例如。 “(一些样本字符串(VOne) - 某事(VTwo))”

这是一个正则表达式替换所有方法。 我们可以匹配模式^.*\((.*?)\).*$ ,它将消耗从输入开始到但不包括最终(...)项的所有内容。 然后我们捕获该术语的内容并打印到控制台。

 var input = "Some Sample String (Value 1) (more) Something (Value 2)"; var last = input.match(/\(.*\)/)? input.replace(/^.*\((.*?)\).*$/, "$1"): "NO MATCH"; console.log(last);

请注意,我对match进行了初步检查,以确保该术语至少有一个(...)术语。 如果是这样,那么我们采用正则表达式替换,否则我们分配NO MATCH

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM