用于验证十进制的正则表达字符串,不包括零

时间:2013-07-31 23:04:27

标签: c# regex

我有一个函数可以创建用于验证小数的正则表达式字符串。

public static string DecimalWithPlaces(int wholePart, int fractionalPart)
{
     return @"^-?[0-9]{0," + wholePart + @"}\.[0-9]{1," + fractionalPart + @"}$";
}

有谁能让我知道如何从中排除零?

例如:" 0"," 0.0"," 0.00"等不应该匹配。

由于

1 个答案:

答案 0 :(得分:0)

艾米是对的 - 例子很好。

然而,我会失明。

您想要排除所有零,还是仅排除零值?

要排除零,请尝试此操作,看看会发生什么。

public static string DecimalWithPlaces(int wholePart, int fractionalPart)
{
    return @"^-?[1-9]{0," + wholePart + @"}\.[1-9]{1," + fractionalPart + @"}$";
}

排除数字零...这对正则表达式来说实际上不是一个好的检查。这是一次价值检查。

在我的书中,您应该对值使用两个验证步骤。一个检查它是否满足您的精确度/比例要求,根据您的正则表达式,第二个,然后检查它为非零值。

我确实认为使用正则表达式来实现零价值的东西是可能的。但我强烈建议不要这样做。也就是说,如果您承诺忽略该推荐,那么您可能希望调查Negative Lookahead正则表达式结构。