字符串中最后2个括号之间的所有大写字母的正则表达式
我试图获取字符串中最后2个括号之间的所有大写字母。到目前为止,我已经试过这样:字符串中最后2个括号之间的所有大写字母的正则表达式
/\(([A-Z])([^)]*)\)[^(]*$/g
。例如:我不希望(这些词),我想(这两个)
,但它给了我:
组1 。T
集团2 hese Two
有人能帮助我吗?
在此先感谢!
回答:
我认为,最短,最简单的解决方法是:
(?!.*\()
- 负前瞻 - 无处以后会出现的任何 左括号(之后的任何数量的其他字符),(?=.*\))
- 积极的前瞻 - 某处稍后必须 出现右括号(任意数量的其他字符之后),[A-Z]
- 抓住一个大写字母,而不是作为一个捕获组, 但作为一个“正常”的比赛,g
- 随着全球选项。
综上所述:
/(?!.*\()(?=.*\))[A-Z]/g
回答:
你可以在JavaScript中括号内包装为后续的最后一个字符串之间的所有字母大写:
/(?!.*\()(?=.*\))([A-Z])/g
其中第一部分(?!.*\(.*\))
是忽略所有的开括号后立即停止负前瞻最后一个。然后,我们执行一个正面预测,它匹配所有内容,直到遇到关闭的括号。然后我们匹配大写字母。
回答:
代码
var s = "I don't want (These Words), I want (These Two)" var r = /.*\(([^)]*)\)/
var m = r.exec(s)
console.log(m[1].match(/[A-Z]/g))
说明
一正则表达式
第一个正则表达式.*\(([^)]*)\).*
提取的最后一个括号中的内容。
.*
匹配任何字符任意次数\(
匹配左括号字面上([^)]*)
捕捉除右括号的任何字符的任何数量的次进入捕获组1\)
匹配右括号字面上.*
匹配任何字符的次数
二正则表达式
第二个正则表达式[A-Z]
匹配大写字母
以上是 字符串中最后2个括号之间的所有大写字母的正则表达式 的全部内容, 来源链接: utcz.com/qa/267178.html