使用正则表达式从字符串中提取浮点数
在编程中,经常需要从文本字符串中提取数据。在本例中,您正在寻求从“当前级别:13.4 db”等字符串中提取浮点数。
正则表达式解决方案
使用正则表达式,您可以定义捕获浮点数的模式。考虑以下 Python 代码:
import re string = "Current Level: 13.4db." result = re.findall(r"\d+\.\d+", string) print(result)
此代码使用正则表达式模式 d .d :
结果列表将包含提取的浮点数:['13.4'].
带验证的鲁棒解决方案
要获得更鲁棒的方法,请使用模式 r"[- ]?(?:d*.*d )"。此模式处理正号和负号,以及小数点前的可选数字。
result = re.findall(r"[-+]?(?:\d*\.*\d+)", string) print(result)
除了提取之外,您还可以通过尝试直接将用户输入转换为浮点数来验证用户输入:
user_input = "Current Level: 1e100 db" for token in user_input.split(): try: float_value = float(token) print(f"{float_value} is a float") except ValueError: print(f"{token} is something else")
此代码迭代输入字符串中的标记并尝试将它们转换为浮点数。如果转换成功,则令牌是浮点数。否则就被认为是别的东西。
以上是如何在 Python 中使用正则表达式从字符串中提取浮点数?的详细内容。更多信息请关注PHP中文网其他相关文章!