正则表达式来允许“单0”或“数字任何其他数量

我需要一个正则表达式允许一个单一的0或任何其他数量的数字不以零所以开始:正则表达式来允许“单0”或“数字任何其他数量

0或23443或984756被允许的,但0123是不允许的。

我有只允许1到9

[1-9]\d 

回答:

查找以下一个孤独的0或1-9跟任何其他数字。

^(0|[1-9]\d*)$ 

如果你想大字符串里的匹配号码,使用字界碑\b代替^$

\b(0|[1-9]\d*)\b 

回答:

你并不需要的一切迫使成一个单一的正则表达式去做这个。

如果您使用多个正则表达式,每个正则表达式都会进行特定的检查,这会更加清晰。在Perl中,你会这样做,但你可以适应C#就好了。

if (($s eq '0') || (($s =~ /^\d+$/) && not ($s =~ /^0/))) 

你已经做了明确清晰的意图是什么:

if ((string is '0') OR ((string is all digits) AND (string does not start with '0'))) 

注意,第一次检查,看是否该字符串0甚至不使用正则表达式可言,因为你是在比较到一个单一的价值。

让您的宿主语言的表现形式被使用,而不是试图将逻辑嵌入到正则表达式中。

以上是 正则表达式来允许“单0”或“数字任何其他数量 的全部内容, 来源链接: utcz.com/qa/260204.html

回到顶部