如何解决正则表达式查找大括号之间的最后一次出现
我需要在 JavaScript/ES6 中使用正则表达式来查找字符串中最后一次出现的括号之间的值
例如,如果这些是示例字符串:
- “某些示例字符串(值 1)(更多)某物(值 2)”
- “一些示例字符串(第一个值),某些东西(第二个值)”
- “某些示例字符串 (VOne) - 某些东西 (VTwo)”
正则表达式应分别从上述字符串返回以下值
- “价值 2”
- “第二个瓦尔”
- “VTwo”
解决方法
str.match(/.*\((.*)\).*$/)[1]
适用于您的用例。
limit:这不适用于具有嵌套刹车的字符串。 例如。 “(一些样本字符串(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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。