首页 > 解决方案 > 正则表达式查找带有两个字母的字符串

问题描述

我需要找到所有字符串具有字母“H”和“M”但之前或之后没有其他字母但其他符号都可以的所有字符串。有效字符串:

HM
(HM)
&HM%
This is HM
HM are two letters

无效的字符串:

Marshmellows
asdfHMASDF
sfafhmasdf

标签: regex

解决方案


您可以在忽略大小写模式下使用此正则表达式:

/^(?:.*?[^a-z\n])?HM(?:[^a-z\n].*)?$/igm

正则表达式详细信息:

  • ^: 开始
  • (?:.*?[^a-z\n])?:匹配任何后跟非字母的可选匹配项
  • HM: 匹配HM(忽略大小写)
  • (?:[^a-z\n].*)?:匹配一个可选的非字母,后跟任何内容直到结束
  • $: 结尾

或者使用环顾四周:

/^.*?(?<![a-z])HM(?![a-z]).*/igm

正则表达式演示


推荐阅读