.net 浮点数据类型的必需表达式和正则表达式

.net 浮点数据类型的必需表达式和正则表达式,.net,regex,.net,Regex,我想验证数据库中数据类型为float的字段。请告诉我float数据类型所需的表达式和正则表达式,以便用户只能输入float中的数字 例如,这是一个错误 else if(!Regex.IsMatch(lowerlimit, @"[+-]?(?:(?:\d+\.\d*)|(?:\d*\.\d+))")) { ModelState.AddModelError("lowerlimit", "Please enter valid lower limit"); } 谢谢 丽思酒店

我想验证数据库中数据类型为float的字段。请告诉我float数据类型所需的表达式和正则表达式,以便用户只能输入float中的数字

例如,这是一个错误

else if(!Regex.IsMatch(lowerlimit, 
        @"[+-]?(?:(?:\d+\.\d*)|(?:\d*\.\d+))"))
{
    ModelState.AddModelError("lowerlimit", "Please enter valid lower limit");
}
谢谢
丽思酒店试试这样:

^\d*\.?\d*$


试着这样做:

^\d*\.?\d*$

如果希望使非捕获标记更具可读性,可以删除该标记。?:

[+\-]?((\d+(\.\d+)?)|(\d*\.\d+))
注意:这个正则表达式将只匹配带小数点的浮点数,而不是整数

如果希望使非捕获标记更具可读性,可以删除该标记。?:

[+\-]?((\d+(\.\d+)?)|(\d*\.\d+))

注意:此正则表达式将只匹配带小数点的浮点数,而不匹配整数。

1st:看起来您落入了一个常见陷阱:您遇到了一个问题,决定用正则表达式解决它,现在您遇到了两个问题。
您应该看看是否可以使用标准库尝试将预期的浮点解析为一个浮点,以避免混淆近似正则表达式

取决于要允许的浮点数文本表示形式的样式

科学符号:

[-+]?\d(\.\d+)?([eE]-?\d+)?
简单小数点:

-?\d+(\.\d+)?
允许空整数部分:

[-+]?((\d*\.\d+)|(\d+(\.\d+)?))

第一:看起来你掉进了一个常见的陷阱:你有一个问题,你决定用正则表达式来解决,现在你有两个问题。
您应该看看是否可以使用标准库尝试将预期的浮点解析为一个浮点,以避免混淆近似正则表达式

取决于要允许的浮点数文本表示形式的样式

科学符号:

[-+]?\d(\.\d+)?([eE]-?\d+)?
简单小数点:

-?\d+(\.\d+)?
允许空整数部分:

[-+]?((\d*\.\d+)|(\d+(\.\d+)?))

这不是匹配的
还是空字符串?这不是匹配的
还是空字符串?更新后不会匹配
12。
多亏了道格拉斯的正则表达式。更新后不会匹配
12。
多亏了道格拉斯的正则表达式。@Amarghosh:是的,在许多编程语言中,文本
.4
有效。我想这完全取决于Ritz认为有效的值的类型。@Amarghosh:是的,在许多编程语言中,literal
.4
是有效的。我想这完全取决于Ritz认为有效的值的类型。为什么不读取输入,解析浮点值并检查它是否为NaN?为什么不读取输入,解析浮点值并检查它是否为NaN?