我正在寻找一个正则表达式来验证只有正数字
例如
0无效。
0.123有效。
任何正整数都有效
任何负数都无效
答案 0 :(得分:7)
如果您只是尝试将输入数字验证为有效的正数,则不需要Regex
- 只需使用Parse
上定义的TryParse
或Double
方法或Decimal
并检查值是否为正值。
decimal test;
if(decimal.TryParse(myString, out test))
{
// parsed OK, myString is a valid decimal
if(test > 0)
{
// yay, it is positive!
}
}
答案 1 :(得分:2)
我不相信正则表达式是测试正数的最佳方法,但如果您出于某种原因必须使用正则表达式,那么这应该符合您的要求:
^(?:[1-9]\d*(?:\.\d+)?|0\.0*[1-9]\d*)$
答案 2 :(得分:0)
试试这个
^(?!-|0(?:\.0*)?$)\d+(?:\.\d+)?$
^
字符串的开头
(?!-|0(?:\.0*)?$)
否定前瞻断言,当字符串以“ - ”开头或0和0.0 *后跟字符串结尾时失败。
\d+
匹配至少一位数
(?:\.\d+)?
可选地匹配一个点,后跟至少一个数字
$
字符串的结尾
答案 3 :(得分:-1)
这可以帮助你
正数--- ^\d*\.{0,1}\d+$