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# C中十进制数验证的正则表达式#_C#_Regex_C# 4.0 - Fatal编程技术网

C# C中十进制数验证的正则表达式#

C# C中十进制数验证的正则表达式#,c#,regex,c#-4.0,C#,Regex,C# 4.0,我需要正则表达式,它允许正小数和负小数的范围 例如.89,-1000,0.00,0,300 我的正则表达式是^\d*\?\d* 问题是,当您输入特殊字符时,例如$,,*然后它接受这些字符 而不是regex,我将使用和具有类似的的区域性来解析它 这捕获了您提到的所有需求。您错过了一个反斜杠!单个点在正则表达式中有不同的含义 public static bool IsValidDecimal() { string input = "132456789" Match m = Regex

我需要正则表达式,它允许正小数和负小数的范围

例如
.89
-1000
0.00
0
300

我的正则表达式是
^\d*\?\d*


问题是,当您输入特殊字符时,例如
$
*
然后它接受这些字符

而不是regex,我将使用和具有类似的
的区域性来解析它


这捕获了您提到的所有需求。

您错过了一个反斜杠!单个点在正则表达式中有不同的含义

public static bool IsValidDecimal()
{
    string input = "132456789"
    Match m = Regex.Match(input, @"^-?\d*\.?\d+");
    return m.Success && m.Value != "";
}

如果您热衷于使用
regex
,请执行以下操作:

^-?[0-9]*\.?[0-9]+$

那么使用
float.TryParse有什么错呢?它对于负数,对于小数但没有小数部分的数字(如
1.
)也会失败,即使这个也可以正常工作。谢谢你,朱尔斯。我错过了m.value=“”。我确信此正则表达式接受
1.
,这不是一个格式正确的数字!
^-?[0-9]*\.?[0-9]+$