我会承认我对正则表达式一无所知。我想要做的是使用一个变量作为正则表达式的一部分。我想要在每个字符输入上进行验证,并且只允许1到n之间的字符,n可以是1到999之间的任意数字,我该怎么做? 1,2,3,15,23,500全部有效,而003,0,3t3全部无效。c#正则表达式只允许1和n之间的数字
感谢,R.
我会承认我对正则表达式一无所知。我想要做的是使用一个变量作为正则表达式的一部分。我想要在每个字符输入上进行验证,并且只允许1到n之间的字符,n可以是1到999之间的任意数字,我该怎么做? 1,2,3,15,23,500全部有效,而003,0,3t3全部无效。c#正则表达式只允许1和n之间的数字
感谢,R.
这应做到:^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$
关键是要思考的问题为一系列的数字来评价一次一个,而不是一个整数。
享受!
你确定这里的正则表达式是最好的解决方案吗?
你可以使用int.TryParse(字符串,超时值)
如果成功则确保最终int是在范围内...
这不符合要求。他不想让003通过,但它会使用TryParse方法 – 2010-06-21 23:33:05
我建议不要使用以下,这类似于@ Doug的回答:
查找一个以1-9开头的字符串,其后跟零个,一个或两个数字(0-9),仅此而已。
^[1-9][0-9]{0,2}$
如果需求变化,比如1-9999,这也具有很好的缩放比例。在这种情况下,正则表达式简单地变成:
^[1-9][0-9]{0,3}$
好吧,那个工作,我学到了东西!这是一个好日子:) – flavour404 2010-06-21 23:48:59