我需要一个数字值的RegEx,最多两个小数位数大于零,并且在一列中可能没有零.我也应该添加….整数都可以.看到下面的一部分,但可能有前导或尾随的空格
Good values: .1 0.1 1.12 123.12 92 092 092.13 Error values: 0 0.0 0.00 00 1.234 -1 -1.2 Anything less than zero
这个怎么样:
原文链接:https://www.f2er.com/regex/357193.html^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$
说明:
^ # Start of string \s* # Optional whitespace (?=.*[1-9]) # Assert that at least one digit > 0 is present in the string \d* # integer part (optional) (?: # decimal part: \. # dot \d{1,2} # plus one or two decimal digits )? # (optional) \s* # Optional whitespace $ # End of string
在Python中测试:
>>> import re >>> test = [".1","0.1","1.12","123.12","92","092","092.13","0","0.0","0.00","00","1.234","-1","-1.2"] >>> r = re.compile(r"^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$") >>> for item in test: ... print(item,"matches" if r.match(item) else "doesn't match") ... .1 matches 0.1 matches 1.12 matches 123.12 matches 92 matches 092 matches 092.13 matches 0 doesn't match 0.0 doesn't match 0.00 doesn't match 00 doesn't match 1.234 doesn't match -1 doesn't match -1.2 doesn't match