Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 0或正数的正则表达式_C#_Regex - Fatal编程技术网

C# 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到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})$

提供更快的非正则表达式方法:

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不是更快更简单吗?为什么不试着解析它并忽略正则表达式?你是在尝试验证还是提取文本?很高兴看到你发布了一个问题,问了一个明确的正则表达式问题,自己做了很好的努力来实际解决它,并表明你基本上了解了发生了什么。对于正则表达式,这是唯一的例外不幸的是,这不是正常现象,所以我只想说继续保持下去