2010-06-21 64 views
0

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

感谢,R.

回答

3

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

关键是要思考的问题为一系列的数字来评价一次一个,而不是一个整数。

享受!

+0

好吧,那个工作,我学到了东西!这是一个好日子:) – flavour404 2010-06-21 23:48:59

0

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

你可以使用int.TryParse(字符串,超时值)

如果成功则确保最终int是在范围内...

+2

这不符合要求。他不想让003通过,但它会使用TryParse方法 – 2010-06-21 23:33:05

4

我建议不要使用以下,这类似于@ Doug的回答:

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

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

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

^[1-9][0-9]{0,3}$ 
相关问题