正则表达式,用于检查字符串是否仅包含零

时间:2015-06-11 06:58:57

标签: c# regex

我需要验证金额字段,该字段不应为零金额。例如。 不能 0000,0.00,000.000,0 CAN 0.0001,1.000,1.00,1234.00 等值。

尝试@"[^1-9]+"@"0+((\.0+)"但是它们会使包含零的每个值无效。

3 个答案:

答案 0 :(得分:8)

我不明白为什么你需要一个正则表达式,只需将字符串转换为数字并检查它是否为0

decimal actNumber;
if(decimal.TryParse(myAmount, out actNumber) && actNumber > 0) 
{ /* ... */ }

因此,您也可以使用之后的实际数字。

答案 1 :(得分:1)

^(?=.*?[1-9])\d+(\.\d+)?$

您可以使用简单的lookahead来验证是否至少有一个[1-9]

答案 2 :(得分:1)

如果希望正则表达式检查只包含一个字符的字符串,则可以指定该字符位于开头,结尾和中间的任何位置。以下是如何对数字0执行此操作的示例:

regexp'^ 0 + $'

如果您担心包含非零数字的值,您可以使用以下方法确保不存在此类字符:

regexp'^ [^ 1-9] + $'