匹配含重复字母单词的正则表达式实现求助
解决方案
你需要的正则需满足核心要求:严格遵循 N→E→I→G→H 的字母顺序,每个字母可重复任意次数(至少1次),同时支持大小写不敏感匹配。
正确的正则表达式如下:
const regex = /n+e+i+g+h+/gi;
正则说明
n+:匹配1个或多个字母N/ne+:匹配1个或多个字母E/ei+:匹配1个或多个字母I/ig+:匹配1个或多个字母G/gh+:匹配1个或多个字母H/hg标志:全局匹配所有符合条件的结果i标志:忽略大小写,同时匹配大写、小写形式
测试验证
该正则可完美匹配你给出的所有示例:
nnnneeeiggghhhhh✅Neeeiighh✅Neigh✅Neeeighh✅Nnnneeeigh✅
原正则的问题
你之前的 /n+e+i+g+h?(.)\1/gm 存在两个关键错误:
h?表示H/h可出现0次或1次,但需求中H必须至少出现1次(.)\1是匹配任意连续重复字符,完全偏离需求,会引入错误匹配
如果需要匹配整行仅为该变体的情况(行内无其他字符),可添加行首行尾锚点:
const regex = /^n+e+i+g+h+$/gim;
^:匹配行开头$:匹配行结尾m标志:多行模式,让^和$匹配每行首尾
内容的提问来源于stack exchange,提问作者BennKingy
相关产品推荐
相关产品推荐

