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

如何编写正则表达式匹配无相邻数字、仅含a-g和1-7的1-20位字符串

正则表达式实现方案

可用正则表达式

你可以直接使用以下任意一种正则完成全部校验逻辑,无需额外遍历字符串:

方案1(逻辑直观,兼容性强)

^(?!.*[1-7]{2})[a-g1-7]{1,20}$

方案2(逐位校验,性能更优)

^([a-g]|[1-7](?![1-7])){1,20}$

规则说明

两种方案都覆盖了你要求的所有校验规则:

  • 字符串长度为1到20位
  • 仅允许包含小写字母a-g、数字1-7
  • 不存在相邻的数字

方案1逐段解析

  • ^ 匹配字符串的起始位置
  • (?!.*[1-7]{2}) 负向先行断言,全局校验整个字符串中不存在两个连续的1-7数字
  • [a-g1-7]{1,20} 匹配1到20个符合字符范围要求的内容
  • $ 匹配字符串的结束位置

方案2逐段解析

  • 每一位字符只能是两种情况:
    1. 小写字母a-g
    2. 数字1-7,且该数字后面没有跟着其他1-7的数字
  • 整体限制匹配长度为1到20位

验证效果

  • 合法示例aabbca1a6、4gg1g2g1、1都可以正常匹配
  • 非法示例aabbca16a因为存在连续数字,会被直接拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:42:00