我有一个函数可以创建用于验证小数的正则表达式字符串。
public static string DecimalWithPlaces(int wholePart, int fractionalPart)
{
return @"^-?[0-9]{0," + wholePart + @"}\.[0-9]{1," + fractionalPart + @"}$";
}
有谁能让我知道如何从中排除零?
例如:" 0"," 0.0"," 0.00"等不应该匹配。
由于
答案 0 :(得分:0)
艾米是对的 - 例子很好。
然而,我会失明。
您想要排除所有零,还是仅排除零值?
要排除零,请尝试此操作,看看会发生什么。
public static string DecimalWithPlaces(int wholePart, int fractionalPart)
{
return @"^-?[1-9]{0," + wholePart + @"}\.[1-9]{1," + fractionalPart + @"}$";
}
排除数字零...这对正则表达式来说实际上不是一个好的检查。这是一次价值检查。
在我的书中,您应该对值使用两个验证步骤。一个检查它是否满足您的精确度/比例要求,根据您的正则表达式,第二个,然后检查它为非零值。
我确实认为使用正则表达式来实现零价值的东西是可能的。但我强烈建议不要这样做。也就是说,如果您承诺忽略该推荐,那么您可能希望调查Negative Lookahead正则表达式结构。