任何大于0的数的正则expression式?

将validation应用于MVC中的模型,并希望使用正则expression式。

试图validation我的模型上的ID在提交时大于0。

我不熟悉正则expression式…有人可以帮我吗?

谢谢

我不知道MVC是如何相关的,但是如果你的ID是一个整数,这个BRE应该:

^[1-9][0-9]*$ 

如果要匹配实数(浮点数)而不是整数,则需要处理上面的情况,以及正常的十进制数(即2.53.3̅ ),模式在0和1之间(即0.25 )的情况,以及你的模式有一个小数部分是0的情况(即2.0 )。 而我们在这个时候,我们将添加对整数(即005 )前导零的支持:

  ^(0*[1-9][0-9]*(\.[0-9]+)?|0+\.[0-9]*[1-9][0-9]*)$ 

请注意,这第二个是一个扩展的RE。 基本可再生能源能够expression同样的东西,但是现在几乎所有的东西都可以理解能源环境。 让我们把expression式分解成更容易消化的部分。

  ^( 

脱字符与行开头的null相匹配,所以在你的正则expression式之前加上一个脱字符将它定位到行首。 下面的“or-bar”是左括号。 稍后更多。

  0*[1-9][0-9]*(\.[0-9]+)? 

这匹配任何整数 1以上的任何浮点数。所以我们的2.0将匹配,但0.25不会。 在开始的0*处理前导零,所以005 == 5

  | 

pipe道字符在这种情况下是一个“ or-bar ”。 为了评估这个expression式,它具有比其他所有更高的优先级,并有效地将两个正则expression式连接在一起。 圆括号用于分组由or-bar分隔的多个expression式。

第二部分:

  0+\.[0-9]*[1-9][0-9]* 

这匹配任何以一个或多个0字符开始的数字(用*replace+以匹配零个或多个零,即.25 ),后跟一个句点,后跟一个包含至less一个不为0的数字的string。 所以这匹配0以上和1以下的所有东西。

  )$ 

最后,我们closures括号并将正则expression式与美元符号一起锚定到行的末尾,就像插入符号位于行首一样。

当然,如果你让你的编程语言以数字的方式来评估某些东西,而不是试着用一个正则expression式来匹配它,那么你将会节省头疼 CPU。

这个怎么样: ^[1-9][0-9]*$

码:

 ^([0-9]*[1-9][0-9]*(\.[0-9]+)?|[0]+\.[0-9]*[1-9][0-9]*)$ 

例如: http : //regexr.com/3anf5

参考: https : //social.msdn.microsoft.com/Forums/en-US/17089c0f-f9cb-437a-9667-ba8329681624/regular-expression-number-greater-than-0?forum=regexp

你去那里:

 MatchCollection myMatches = Regex.Matches(yourstring, @"[1-9][0-9]*"); 

提交时间:

 if(myMatches.Count > 0) { //do whatever you want } 

我试过这一个,它为我所有的十进制/整数大于零

允许空格: ^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$

没有空格: ^(?=.*[1-9])\d*(?:\.\d{1,2})?$

参考:正则expression式大于零,小数点后两位

如果您只想要非负整数,请尝试: ^\d+$

我认为最好的解决scheme是在正则expression式的两个括号之间添加+符号:

 ^[1-9]+[0-9]*$ 

你可以使用下面的expression式:

 (^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\.?\d*$) 

有效条目:1 1. 1.1 1.0所有正实数

无效的项目:所有负实数和0和0.0

简单的答案是: ^[1-9][0-9]*$

我认为这将是完美的工作:

 ([1-9][0-9]*(\.[0-9]*[1-9])?|0\.[0-9]*[1-9]) 

有效:

  1 1.2 1.02 0.1 0.02 

无效 :

 0 01 01.2 1.10 
 [1-9]\.\d{1,2}|0\.((0?[1-9])|([1-9]0?)){1,2}\b 

^ \ $?([1-9] {1} [0-9] {0,2}(\,[0-9] {3})*([0-9] {0,2})? | [1-9] {1} [0-9] {0,}([0-9] {0,2})|≠0([0-9] {0,2})|?( 。[0-9] {1,2})?)$

很简单的回答这个使用:\ d *