C#中正数的正则表达式
本文关键字:正则表达式 | 更新日期: 2023-09-27 18:26:19
我正在寻找一个仅验证正数的正则表达式
例如
0无效
0.123有效
任何正整数都是有效的
任何负数都是无效的
如果您只是试图将输入数字验证为有效的正数,则不需要Regex
-只需使用在Double
或Decimal
上定义的Parse
或TryParse
方法,并检查值是否为正数。
decimal test;
if(decimal.TryParse(myString, out test))
{
// parsed OK, myString is a valid decimal
if(test > 0)
{
// yay, it is positive!
}
}
我不相信正则表达式是测试正数的最佳方法,但如果您出于某种原因必须使用正则表达式,那么这应该满足您的要求:
^(?:[1-9]'d*(?:'.'d+)?|0'.0*[1-9]'d*)$
试试这个
^(?!-|0(?:'.0*)?$)'d+(?:'.'d+)?$
在Regexr 上查看
^
字符串的开始
(?!-|0(?:'.0*)?$)
否定前瞻性断言,当字符串以"-"开头或0和0.0*后跟字符串末尾时失败。
'd+
至少匹配一位
(?:'.'d+)?
可选地匹配后面跟着至少一个数字的点
$
字符串的末尾
这可以帮助u
正数---^'d*'.{0,1}'d+$