查询匹配含HM且前后无其他字母的字符串的正则表达式
匹配规则说明
你需要匹配的字符串需满足以下要求:
- 包含连续的大写字母组合 HM
- HM 的前后不能出现其他英文字母(a-z、A-Z),数字、特殊符号、空格、标点等非字母字符均允许
- 大小写敏感,小写的 hm 不会被命中
可用正则表达式
直接使用以下正则即可满足需求:
(?<![a-zA-Z])HM(?![a-zA-Z])
正则逻辑解释
(?<![a-zA-Z]):负向零宽后行断言,限定HM之前的位置不能出现任何英文字母HM:匹配连续的大写字母H和M(?![a-zA-Z]):负向零宽先行断言,限定HM之后的位置不能出现任何英文字母
匹配效果验证
可正常命中的合法示例
- HM
- (HM)
- &HM%
- This is HM
- HM are two letters
不会命中的非法示例
- Marshmellows
- asdfHMASDF
- sfafhmasdf
扩展场景
如果需要校验整个字符串符合要求,在正则首尾补充起止符即可:
^.*(?<![a-zA-Z])HM(?![a-zA-Z]).*$
内容的提问来源于stack exchange,提问作者i_am_cris
相关产品推荐
相关产品推荐

