4
关注
1949
浏览

字符串中最后2个括号之间的所有大写字母的正则表达式

为什么被折叠? 0 个回复被折叠
南山磨刀Mars 未验证用户 用户来自于: 广东省
2020-09-17 13:11
代码 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]匹配大写字母
特大号废柴 未验证用户 用户来自于: 广东省
2020-09-17 00:09

你可以在JavaScript中括号内包装为后续的最后一个字符串之间的所有字母大写:

/(?!.*\()(?=.*\))([A-Z])/g 

其中第一部分(?!.*\(.*\))是忽略所有的开括号后立即停止负前瞻最后一个。然后,我们执行一个正面预测,它匹配所有内容,直到遇到关闭的括号。然后我们匹配大写字母。

xloong 未验证用户 用户来自于: 广东省
2020-09-16 17:14

我认为,最短,最简单的解决方法是:

  • (?!.*\() - 负前瞻 - 无处以后会出现的任何 左括号(之后的任何数量的其他字符),
  • (?=.*\)) - 积极的前瞻 - 某处稍后必须 出现右括号(任意数量的其他字符之后),
  • [A-Z] - 抓住一个大写字母,而不是作为一个捕获组, 但作为一个“正常”的比赛,
  • g - 随着全球选项。

综上所述:

/(?!.*\()(?=.*\))[A-Z]/g 

关于作者

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 15:51
关注人数
4 人关注
个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号