我需要一个正则表达式来检查一个字符串的值是' 0'还是一个长度等于1到10的正数(也就是第一个数字不能是零)。
我被卡住了,我可以得到0,但我无法获得正数。
这就是我所拥有的:
(^([0])$)|(^([1-9][0-9]{0-9})$)
这个reg exp看起来有点疯狂,我一直在尝试很多不同的东西,让它变得更加疯狂和疯狂。
答案 0 :(得分:7)
对于一系列可能性,您使用逗号,而不是连字符。
(^([0])$)|(^([1-9][0-9]{0,9})$)
但是,您的正则表达式可以缩短为:
^(0|[1-9][0-9]{0,9})$
答案 1 :(得分:2)
提供更快,非正则表达式的方法:
static void Main(string[] args
{
string str = "12";
long test;
if(str.Length <= 10
&& long.TryParse(str, out test)
&& test >= 0)
{
//valid
}
}