c#正则表达式只允许1到n之间的数字

时间:2010-06-21 23:17:13

标签: c#

我承认我对正则表达式一无所知。我想要做的是使用变量作为正则表达式的一部分。我希望在每个字符输入上进行验证,它只允许1和n之间的字符,n可以是1到999之间的任何数字,我该怎么做? 1,2,3,15,23,500均有效,而003,0,3t3均无效。

谢谢,R。

3 个答案:

答案 0 :(得分:4)

我会建议以下内容,这类似于@ Doug的回答:

找到一个以1-9开头的字符串,后面跟着零,一或两位数字(0-9),仅此而已。

^[1-9][0-9]{0,2}$

如果要求改变,这也具有良好的缩放比例,例如1-9999。在这种情况下,正则表达式简单地变为:

^[1-9][0-9]{0,3}$

答案 1 :(得分:3)

应该这样做:^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$

诀窍是将问题视为一次评估一系列数字而不是一个整数。

享受!

答案 2 :(得分:0)

你确定正则表达式是最好的解决方案吗?

您可以使用int.TryParse(string,out value)

如果成功,则确保结果int在范围内......