我想在c#中创建正则表达式,对于具有空白/空格/空值的值或具有2个小数点的十进制值返回true。所以不接受除此之外的其他内容。
答案 0 :(得分:2)
尽管可能不是最有效的,但这个正则表达式应该做你想要的:
^((\d+[\.]\d{2})|([\.]\d{2})|()|\s*)$
它要求任何十进制数都有两个小数位,但它确实接受0.99或.99作为示例。
如果你想允许用户输入9或9.0或9.01(也就是说,不强迫用户输入两位小数),你可以像这样修改上面的内容:
^((\d+([\.]\d{0,2})*)|([\.]\d{0,2})|()|\s*)$
只是将量词设置为{0,2}而不是{2},并使小数位的存在成为可选项。
答案 1 :(得分:0)
^\s*(?:[+-]?\d*\.\d{2})?\s*$
匹配一个带有正好两位小数的数字,可选地用空格包围,或者只用空/空白字符串。
答案 2 :(得分:0)
使用此正则表达式^(\s+)|(([+-])?\d+[,\.]\d{2})|()|(null)$
答案 3 :(得分:0)
我建议使用此模式处理数字和空字符串方案。
^[-+]?\d*(\.\d{2})?|\s*$
重新NULL
,我已经体验过,当我们将null
作为输入传递给RegEx时,它会抛出ArgumentNullException
。因此,我的建议是通过与NULL
匹配来使用!=
运算符验证null
:
if(str != null && RegEx.IsMatch(str,@"^[-+]?\d*(\.\d{2})?|\s*$"))
// valid data
其中:
str =包含验证数据的字符串
以上模式还允许: - .00 或 -0.00 作为验证小数。