正则表达式某字段必须大于0,包含小数
时间: 2023-07-10 13:06:44 浏览: 77
rdlc报表表达式应用字符串和转换.pdf
可以使用以下正则表达式来匹配大于0的小数:
```
^(?!0+(?:\.0+)?$)[0-9]+(?:\.[0-9]+)?$
```
解释:
- `^` 表示以什么开头
- `(?!0+(?:\.0+)?$)` 使用负向预查,不允许出现只有0的小数,例如0.0、0.00等
- `[0-9]+` 表示匹配一个或多个数字
- `(?:\.[0-9]+)?` 表示可选的小数部分,其中 `(?: ... )` 表示非捕获组,`\.` 表示匹配小数点,`[0-9]+` 表示匹配一个或多个数字
- `$` 表示以什么结尾
示例代码:
```python
import re
pattern = r'^(?!0+(?:\.0+)?$)[0-9]+(?:\.[0-9]+)?$'
test_cases = ['0', '0.0', '0.00', '1', '1.0', '1.23', '-1.23', '1.23.45']
for case in test_cases:
match = re.match(pattern, case)
if match:
print(f'{case}: matched')
else:
print(f'{case}: not matched')
```
输出:
```
0: not matched
0.0: not matched
0.00: not matched
1: matched
1.0: matched
1.23: matched
-1.23: not matched
1.23.45: not matched
```
阅读全文