C#中正数的正则表达式

本文关键字:正则表达式 | 更新日期: 2023-09-27 18:26:19

我正在寻找一个仅验证正数的正则表达式
例如
0无效
0.123有效
任何正整数都是有效的
任何负数都是无效的

C#中正数的正则表达式

如果您只是试图将输入数字验证为有效的正数,则不需要Regex-只需使用在DoubleDecimal上定义的ParseTryParse方法,并检查值是否为正数。

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+$