如何编写正则匹配按顺序含m/u/t/e/x且存在字符连续重复≥3次的字符串
正则调整方案
最终匹配正则
直接在正则引擎中使用的写法:^(?i)(?=.*m.*u.*t.*e.*x)(?=.*([mutex])\1{2,})[mutex]+$
如果是在编程语言字符串中使用、需要转义反斜杠的场景,写法为:^(?i)(?=.*m.*u.*t.*e.*x)(?=.*([mutex])\\1{2,})[mutex]+$
规则说明
^:匹配字符串起始位置(?i):开启全局不区分大小写匹配,适配大小写混合的输入场景(?=.*m.*u.*t.*e.*x):正向先行断言,强制要求字符串按顺序包含m、u、t、e、x五个字符,五个字符之间允许插入其他符合要求的字符(?=.*([mutex])\1{2,}):正向先行断言,强制要求存在至少1个m/u/t/e/x类字符连续重复3次及以上[mutex]+$:限定整个字符串仅由m、u、t、e、x五个字符组成,匹配到字符串结束位置
匹配验证
- 可匹配目标示例:
mmmutex、mmuuuTTex、Muuuuuutex、muteeeeeEexxxx、mMutexXxxx均符合规则,可正常命中 - 可排除错误示例:
xxxxxx、mmmmmm这类仅包含单一字符重复的字符串,无法通过顺序匹配断言,会被正常过滤
内容的提问来源于stack exchange,提问作者ChaCha
相关产品推荐
相关产品推荐

