首页 >后端开发 >Python教程 >如何在 Python 中使用正则表达式从字符串中提取浮点数?

如何在 Python 中使用正则表达式从字符串中提取浮点数?

DDD
DDD原创
2024-12-03 10:25:10166浏览

How Can I Extract Floating-Point Numbers from a String Using Regular Expressions in Python?

使用正则表达式从字符串中提取浮点数

在编程中,经常需要从文本字符串中提取数据。在本例中,您正在寻求从“当前级别:13.4 db”等字符串中提取浮点数。

正则表达式解决方案

使用正则表达式,您可以定义捕获浮点数的模式。考虑以下 Python 代码:

import re

string = "Current Level: 13.4db."
result = re.findall(r"\d+\.\d+", string)
print(result)

此代码使用正则表达式模式 d .d :

  • d :匹配一个或多个数字,表示整数部分float.
  • .: 匹配小数点。
  • 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn