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

如何编写正则表达式匹配首个零后仅含零的10位大写字母数字串

正确正则表达式

你可以使用以下正则满足需求:

^(?=[A-Z0-9]{10}$)[A-Z1-9]*0*$

规则解释

  • 开头的^和结尾的$限定匹配整个字符串,避免部分匹配
  • (?=[A-Z0-9]{10}$) 是正向预查,确保字符串总长度为10,且仅由大写英文字母和数字组成
  • [A-Z1-9]* 匹配第一个0出现之前的所有字符,只能是大写字母或者1-9的数字,长度可以为0(对应第一位就是0的场景)
  • 0* 匹配第一个0出现之后的所有字符,只能是0,长度可以为0(对应整个字符串没有0的场景)

匹配验证

对应你给出的用例,匹配结果如下:

  • ABC1000000 - valid
  • 3212130000 - valid
  • 0000000000 - valid
  • ABC1000100 - invalid
  • 0001000000 - invalid

兼容写法(不需要预查支持)

如果你的运行环境不支持正则预查,可以用以下等价写法:

^(?:[A-Z1-9]{10}|[A-Z1-9]{0,9}0{1,10})$

这个写法直接拆分了两种合法场景:要么10位全是非0的合法字符,要么前面0-9位非0合法字符加后面1-10位0,总长度固定为10。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:36:03