【发布时间】:2019-07-14 16:00:30
【问题描述】:
我已经尝试使用正则表达式在python中编写一个代码来识别十进制数,如下面的代码所示。
它在许多情况下都可以正常工作,但仍然无法识别以下输入
import re
string = input()
r = re.compile(r"([+\-.]?\d*\.\d+)\b")
if(r.match(string)):
print(True)
else:
print(False)
234.2344 ->对于这个输入给出预期的结果
+.3456468 ->对于这个输入给出预期的结果
5.34.0 -> 对于这个输入,它应该打印 False
4+345.0 -> 对于这个输入,它应该打印 False
【问题讨论】:
-
^[+-]\d+(\.\d+)$试试这个 -
您应该在开头添加
^,在末尾添加$。没有它,只要字符串 包含 一个有效的十进制模式,它就会接受。您想强制它捕获整个字符串 -
另外,只要
float(string)... -
@Tomerikoo:我试过了,但它没有显示匹配十进制数字。见下方链接regexr.com/4he9t