C# 0或正数的正则表达式
我需要一个正则表达式来检查字符串的值是“0”还是长度为1到10的正数(第一个数字不能为零) 我卡住了,我可以得到0,但我不能得到正数 以下是我所拥有的:C# 0或正数的正则表达式,c#,regex,C#,Regex,我需要一个正则表达式来检查字符串的值是“0”还是长度为1到10的正数(第一个数字不能为零) 我卡住了,我可以得到0,但我不能得到正数 以下是我所拥有的: (^([0])$)|(^([1-9][0-9]{0-9})$) 这个reg exp看起来有点疯狂,我已经尝试了很多不同的东西,使它变得越来越疯狂 对于各种可能性,可以使用逗号,而不是连字符 (^([0])$)|(^([1-9][0-9]{0,9})$) 但是,您的正则表达式可以缩短为: ^(0|[1-9][0-9]{0,9})$ 提供更快
(^([0])$)|(^([1-9][0-9]{0-9})$)
这个reg exp看起来有点疯狂,我已经尝试了很多不同的东西,使它变得越来越疯狂 对于各种可能性,可以使用逗号,而不是连字符
(^([0])$)|(^([1-9][0-9]{0,9})$)
但是,您的正则表达式可以缩短为:
^(0|[1-9][0-9]{0,9})$
提供更快的非正则表达式方法:
static void Main(string[] args
{
string str = "12";
long test;
if(str.Length <= 10
&& long.TryParse(str, out test)
&& test >= 0)
{
//valid
}
}
static void Main(字符串[]参数
{
字符串str=“12”;
长期试验;
如果(str.Length=0)
{
//有效的
}
}
转换为int不是更快更简单吗?为什么不试着解析它并忽略正则表达式?你是在尝试验证还是提取文本?很高兴看到你发布了一个问题,问了一个明确的正则表达式问题,自己做了很好的努力来实际解决它,并表明你基本上了解了发生了什么。对于正则表达式,这是唯一的例外不幸的是,这不是正常现象,所以我只想说继续保持下去