python判断字符串是否为c++合法十进制浮点数字面值
时间: 2023-10-17 18:05:40 浏览: 143
Python学习手册(第4版)-高级话题&附录.pdf
可以使用正则表达式来判断字符串是否为C++合法的十进制浮点数字面值。以下是一个例子:
```python
import re
def is_valid_float(str):
# 匹配C++合法的十进制浮点数字面值的正则表达式
pattern = r'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$'
return bool(re.match(pattern, str))
# 测试
print(is_valid_float("3.14")) # True
print(is_valid_float("-3.14")) # True
print(is_valid_float("1.23e-4")) # True
print(is_valid_float("abc")) # False
print(is_valid_float("1.23e")) # False
```
正则表达式`^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$`表示:
- `^`:匹配字符串的开头。
- `[-+]?`:可选的正负号。
- `[0-9]*`:可选的整数部分。
- `\.?`:可选的小数点。
- `[0-9]+`:必须的小数部分。
- `([eE][-+]?[0-9]+)?`:可选的指数部分,其中`[eE]`表示指数符号,`[-+]?`表示可选的正负号,`[0-9]+`表示指数的值。
- `$`:匹配字符串的结尾。
阅读全文