字符串中最后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

回到顶部