首页 > 解决方案 > 需要一个正则表达式 - 只允许零,允许其他数字的零

问题描述

我想验证一个字符串以满足以下模式:

00;0 (disallow)
00;00 (disallow)
01;123 (disallow)
00;1
00; (disallow)
00;000000 (disallow)
00;1234567890123 (disallow)
00;123456789012
00;10
00;01
00;00001
00;00100
00;0202020
00;1000000
00;00100100

一般来说,字符串应该是^00;\d{1,12}$,但是如何消除上面示例中不必要的行并在一个正则表达式中解决必要的行?

谢谢。

标签: regex

解决方案


你可以使用这个正则表达式:

^00;(?!0+$)\d{1,12}$

正则表达式演示

正则表达式详细信息:

  • ^00;00;:在行首匹配
  • (?!0+$):如果我们全为零,则负前瞻使匹配失败
  • \d{1,12}$: 匹配 end 前任意数字的 1 到 12 个字符

推荐阅读