C#中正数的正则表达式

时间:2012-03-02 10:09:26

标签: c# regex

我正在寻找一个正则表达式来验证只有正数字 例如
0无效。
0.123有效。
任何正整数都有效 任何负数都无效

4 个答案:

答案 0 :(得分:7)

如果您只是尝试将输入数字验证为有效的正数,则不需要Regex - 只需使用Parse上定义的TryParseDouble方法或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+)?$

here on Regexr

^字符串的开头

(?!-|0(?:\.0*)?$)否定前瞻断言,当字符串以“ - ”开头或0和0.0 *后跟字符串结尾时失败。

\d+匹配至少一位数

(?:\.\d+)?可选地匹配一个点,后跟至少一个数字

$字符串的结尾

答案 3 :(得分:-1)

这可以帮助你

正数--- ^\d*\.{0,1}\d+$