判断字符串是否为正则数
时间: 2023-08-06 11:05:56 浏览: 166
判断字符串是否为正则数可以使用正则表达式,可以参考以下代码实现:
```python
import re
def is_positive_float(s):
pattern = r'^[1-9]\d*\.\d+|0\.\d*[1-9]\d*$'
return bool(re.match(pattern, s))
print(is_positive_float('123')) # False
print(is_positive_float('123.45')) # True
print(is_positive_float('-123.45')) # False
print(is_positive_float('1.23e-4')) # False
print(is_positive_float('0.123')) # True
print(is_positive_float('0.0')) # False
print(is_positive_float('abc')) # False
```
其中,正则表达式 `r'^[1-9]\d*\.\d+|0\.\d*[1-9]\d*$'` 的含义是:
- `^` 匹配字符串的开头。
- `[1-9]\d*` 表示匹配以1~9开头的整数部分,整数部分可以有0个或多个数字。
- `\.` 表示匹配小数点。
- `\d+` 表示匹配小数部分,小数部分至少有1个数字。
- `|` 表示或者。
- `0\.\d*[1-9]\d*` 表示匹配以0开头的小数部分,小数部分可以有0个或多个0,但是最后一个数字不能为0。
- `$` 匹配字符串的结尾。
最后使用 `bool(re.match(pattern, s))` 判断是否匹配成功,返回 True 或 False。
阅读全文