我尝试了以下正则表达式来验证应该大于零的小数
@"^-?(?!0(,0+)?$)\d+(,\d{1,3})?$";
并且@"^[0-9]+\d*\.\d{3}$"
,但是这是行不通的,因为我的预期.我需要0.000
在剩余的情况下触发验证时不应该进行验证.
Valid : 1,123.000 1.000 0.001 Invalid : 0 or 0.000
Richard.. 5
使用正则表达式非常困难,但使用转换函数非常简单且更清晰:
decimal d; if (decimal.TryParse(input, out d) && d > 0.0m) { // Valid } else { // Invalid }
编辑:正则表达式是一个非常强大的字符串处理工具,应该是每个程序员工具箱的一部分.但这并不总是正确的工具:有时需要达到其他目的.