Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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# 正则表达式允许除零以外的所有其他数字,如1、10、15、90、92…等?_C#_Regex - Fatal编程技术网

C# 正则表达式允许除零以外的所有其他数字,如1、10、15、90、92…等?

C# 正则表达式允许除零以外的所有其他数字,如1、10、15、90、92…等?,c#,regex,C#,Regex,嗨,我有一个senario,我必须使用正则表达式防止字段输入零。但是我在创建正则表达式时失败了,有人能帮我给出一个正确的正则表达式吗 我所做的是 ^[1-9]\d{0,2}(\d*|(,\d{3})*)$ 但这失败了,因为当输入一个包含零的数字(如340)时,它就失败了 我的意见是,字段必须能够接受除零以外的所有其他整数。我假设您要将字段条目转换为int?如果是这样,为什么不: if (int == 0) { //not valid } 不过,我猜您正在使用某种验证库?这个正则表达式怎

嗨,我有一个senario,我必须使用正则表达式防止字段输入零。但是我在创建正则表达式时失败了,有人能帮我给出一个正确的正则表达式吗

我所做的是

^[1-9]\d{0,2}(\d*|(,\d{3})*)$
但这失败了,因为当输入一个包含零的数字(如340)时,它就失败了


我的意见是,字段必须能够接受除零以外的所有其他整数。我假设您要将字段条目转换为int?如果是这样,为什么不:

if (int == 0)
{
   //not valid
}
不过,我猜您正在使用某种验证库?

这个正则表达式怎么样:

^[1-9][0-9]*$
字符串以1到9开头,然后在0到9中有零个或多个字符

看来这里的正则表达式可能有点过头了。你为什么不试试这样的东西:

int value;
if (Int32.TryParse(fieldString, out value))
{
    if (value == 0)
    {
        // handle invalid value
    }
}

这可以通过以下模式完成:

^(?![0,]+$)\d{0,2}(\d*|(,\d{3})*)$
假设您只希望接受正整数。如果表达式只包含零和逗号,则模式
(?![0,]+$)
会阻止表达式匹配。第二部分来自原始表达式,允许对其他值使用数字和逗号的原始组合。

您可以尝试以下方法:

^[+-]?0*[1-9]\d*$

它接受可选符号(加号或减号),然后是任意数量的前导零,然后是至少一个非零数字,后跟任意数量的数字。您可以在上看到它的实际作用。

为什么要为此使用正则表达式?能否提供一些不起作用的具体示例?340对我来说确实有效(只是尝试过)…@Daniel B:这将拒绝任何以0开头的数字,我想这是他的真正问题。还有一个疑问。。。我们如何使用正则表达式检查空值或strip.Empty?再次感谢您的提问。如何使用正则表达式检查null或strip.Empty?如果将
^(?[0,]+$)
更改为
^(?[0,]*$)
,表达式也将与空字符串不匹配。(对于空字符串,Regex.Match的空输入参数将抛出
ArgumentNullException
)这将不接受任何以零开始的非零数字,例如0123或0000000 1