如何使用Regex匹配满足大写字母规则的文本单词
匹配符合大写规则单词的正则解决方案
你需要的正则表达式如下:
\b(?:[a-zA-Z]*[A-Z]|(?=(?:[^A-Z]*[A-Z]){2})[a-zA-Z]+)\b
规则说明
- 正则使用
|分隔两个匹配分支,满足任意一个分支规则即可成功匹配单词 - 第一个分支
[a-zA-Z]*[A-Z]对应「单词最后一个字符为大写」的要求,允许单词前半部分为任意大小写字母,末尾固定为大写 - 第二个分支通过正向肯定前瞻
(?=(?:[^A-Z]*[A-Z]){2})实现「单词内有2个及以上大写字母」的校验,匹配前先确认单词内大写字母数量≥2,再匹配完整单词内容
如果你的业务场景中单词允许包含数字、下划线等非字母字符,可将正则中的
[a-zA-Z]替换为\w,也可根据实际单词允许的字符范围调整对应字符集规则。
内容的提问来源于stack exchange,提问作者Uwe.Schneider
相关产品推荐
相关产品推荐

