You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写满足长度、小写字母、中间数字等多约束的正则表达式

符合要求的正则表达式及说明

最终正则

^(?!.*([a-z]).*\1.*\1)(?:[a-z]{2}\d[a-z]{2}|[a-z]{2}\d[a-z]{3}|[a-z]{3}\d[a-z]{2}|[a-z]{3}\d[a-z]{3})$

规则匹配逻辑拆解

  • 开头的^(?!.*([a-z]).*\1.*\1)是负向预查,保证所有小写字母最多出现2次,也就是仅允许0次或1次重复,不会出现同一个字母重复2次及以上的情况
  • 后面的分组匹配不同长度下数字的位置要求,天然保证整个字符串只有1个数字,且总长度符合5-7位要求:
    • [a-z]{2}\d[a-z]{2}:匹配总长度5位的情况,数字固定在索引2的中间位置,前后各2个小写字母
    • [a-z]{2}\d[a-z]{3}|[a-z]{3}\d[a-z]{2}:匹配总长度6位的情况,数字可以在索引2或3的位置
    • [a-z]{3}\d[a-z]{3}:匹配总长度7位的情况,数字固定在索引3的中间位置,前后各3个小写字母
  • 首尾的^和$保证是全字符串匹配,不会出现匹配字符串中部分片段的情况

匹配验证

你给出的合法示例都可以正常匹配:

  • ab3bw:长度5,数字在索引2,字母b仅重复1次,匹配成功
  • fdg5bde:长度7,数字在索引3,无重复字母,匹配成功
  • qwe3gk:长度6,数字在索引3,无重复字母,匹配成功
  • pu2auz:长度6,数字在索引2,字母u仅重复1次,匹配成功

内容的提问来源于stack exchange,提问作者user13828221

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:15:08