微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式大于0,小数位为2位

我需要一个数字值的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
这个怎么样:
^\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

原文地址:https://www.jb51.cc/regex/357193.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐