使用Python中的Regex返回匹配或不匹配浮点数的True / False

时间:2020-03-21 11:50:15

标签: regex python-3.x floating-point boolean pattern-matching

我需要为用户定义的输入中所有匹配的浮点数打印(True),如果输入不是浮点数,则打印(False)。

到目前为止,我提出了以下建议:

import re

user_input = input() # the input will be (+4.9, 4.0, 2.89, 4, somerandomstuff)

pattern = re.compile(r'[+-]?[0-9]+\.[0-9]+') #pattern to match floating point numbers

matches = pattern.finditer(user_input)

for match in matches:
    print(bool(match))

预期结果:

input =(+4.9,4.0,2.89,4,somerandomstuff,stackoverflow)

真实 真正 真正 假 假 错误

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

假定用户输入将始终具有您提供的格式,可以使用float并尝试将每个值转换为浮点数。另外,要过滤出整数,您可以检查每个字符串中是否存在.

import re

user_input = input()

for match in user_input.strip("()").split(","):
    try:
        num = float(match)
        print("." in match)
    except ValueError:
        print(False)

打印:

True
True
True
False
False
False
相关问题