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

news2024/9/23 3:19:50

在 Python 中,使用正则表达式可以非常方便地从字符串中提取浮点数。Python 的 re 模块提供了正则表达式支持。下面是如何使用正则表达式提取浮点数的示例。

在这里插入图片描述

1、问题背景

在开发过程中,有时候我们需要从字符串中提取浮点数,例如从 HTML 代码中提取价格信息。但是,浮点数的格式可能多种多样,例如带有逗号分隔符的数字或带有美元符号前缀的数字。因此,我们需要一种方法来处理各种格式的浮点数。

2、解决方案

我们可以使用正则表达式来提取浮点数。正则表达式是一种强大的文本处理工具,可以用于查找、替换和提取字符串中的信息。

以下是如何使用正则表达式从字符串中提取浮点数的示例:

import re

# 定义正则表达式模式
pattern = r"[-+]?\d+(?:\.\d*)?"

# 编译正则表达式模式
regex = re.compile(pattern)

# 从字符串中提取浮点数
string = "The price is $12.99"
match = regex.search(string)
if match:
    # 获取浮点数的值
    float_value = float(match.group())
    print(float_value)

输出:

12.99

在上面的示例中,正则表达式模式 r"[-+]?\d+(?:\.\d*)?" 匹配任何带有可选的正负号、整数部分和小数部分的数字。

re.search() 函数用于在字符串中搜索匹配正则表达式模式的子字符串。如果找到匹配项,则返回一个 Match 对象,否则返回 None

Match 对象的 group() 方法用于获取匹配项的值。

上面的示例只演示了如何从字符串中提取一个浮点数。如果字符串中有多个浮点数,则可以使用正则表达式 findall() 函数来提取所有匹配项。

以下是如何使用正则表达式 findall() 函数从字符串中提取所有浮点数的示例:

import re

# 定义正则表达式模式
pattern = r"[-+]?\d+(?:\.\d*)?"

# 编译正则表达式模式
regex = re.compile(pattern)

# 从字符串中提取所有浮点数
string = "The price is $12.99 and the tax is $2.99"
matches = regex.findall(string)
for match in matches:
    # 获取浮点数的值
    float_value = float(match)
    print(float_value)

输出:

12.99
2.99

在上面的示例中,正则表达式 findall() 函数返回一个包含所有匹配项值的列表。

我们还可以使用正则表达式来提取带有逗号分隔符的浮点数。以下是如何使用正则表达式从字符串中提取带有逗号分隔符的浮点数的示例:

import re

# 定义正则表达式模式
pattern = r"[-+]?(?:\d+(?:\.\d*)?|\.\d+),(?:\d+(?:\.\d*)?|\.\d+)"

# 编译正则表达式模式
regex = re.compile(pattern)

# 从字符串中提取带有逗号分隔符的浮点数
string = "The price is 12,999.99"
match = regex.search(string)
if match:
    # 获取浮点数的值
    float_value = float(match.group().replace(",", ""))
    print(float_value)

输出:

12999.99

在上面的示例中,正则表达式模式 r"[-+]?(?:\d+(?:\.\d*)?|\.\d+),(?:\d+(?:\.\d*)?|\.\d+)" 匹配任何带有可选的正负号、整数部分和小数部分的数字,并允许逗号分隔符。

我们还可以使用正则表达式来提取带有美元符号前缀的浮点数。以下是如何使用正则表达式从字符串中提取带有美元符号前缀的浮点数的示例:

import re

# 定义正则表达式模式
pattern = r"\$[+-]?(?:\d+(?:\.\d*)?|\.\d+)"

# 编译正则表达式模式
regex = re.compile(pattern)

# 从字符串中提取带有美元符号前缀的浮点数
string = "The price is $12.99"
match = regex.search(string)
if match:
    # 获取浮点数的值
    float_value = float(match.group().replace("$", ""))
    print(float_value)

输出:

12.99

在上面的示例中,正则表达式模式 r"\$[+-]?(?:\d+(?:\.\d*)?|\.\d+)" 匹配任何带有美元符号前缀的数字,并允许可选的正负号、整数部分和小数部分。

这个正则表达式可以识别包括正数、负数和小数的浮点数。我们可以根据需要调整正则表达式,以适应更多的浮点数格式,例如科学计数法或无小数点的整数等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2106955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vs2022 如何去掉 错误|警告的波形曲线 绿色波浪线

如图: 去不去都一样,只是看着不舒服,相当不爽 工具→选项→文本编辑器→显示错误波形曲线,把前的√去掉,按确定 清爽多了,虽然没啥卵用 。。。

泛微OA主流程节点设置子流程归档后主流程自动跳转下一个节点,子流程已归档主流程不自动跳转

⭐️如果对你有用的话,希望可以点点赞,感谢了⭐️ 主流程节点已设置触发的子流程归档后自动跳转下个节点 当子流程归档后主流程不自动跳转下个节点 是什么问题? 主流程节点中存在必填字段中有空值,需要检查主流程节点排查把空值…

MSSQL数据库安全配置

预备知识 1、数据库安全的概念 对任何企业组织来说,数据的安全性最为重要。安全性主要是指允许那些具有相应的数据访问权限的用户能够登录到数据库,并访问数据以及对数据库对象实施各种权限范围内的操作,但是要拒绝所有的非授权用户的非法操作。因此安全性管理与用户管理是…

开学季好物分享!揭秘学霸们都在用的神器

一年一度的大学入学又开始了,一群充满朝气,怀着好奇的准大学生准备步入大学的校园。每次开学都看到大家拎着大包小包的行李,开学后快递站山人山海,看完这篇开学季好物分享!揭秘学霸们都在用的神器,教你快人…

满誉而归 | 2024物联网IOTE展·人工智能AGIC展完美收官

引言: 随着物联网技术的飞速发展,2024年深圳物联网IOTE展会成为了全球科技界瞩目的焦点。北京宇音天下科技有限公司作为语音技术领域的先锋,公司在此次展会上展出了多款创新产品和解决方案,旨在通过尖端科技,推动智能生…

数据库太慢跑崩的一大罪魁

就是非常不起眼的帐号去重计数,用 SQL 写就是 COUNT(DISTINCT …)。 帐号去重计数在商业分析中很常见也有重要的业务意义。这里的帐号可能是用户 ID、银行帐户、手机号、车牌号、…。计算逻辑基本一样,就是从某个时段的历史数据中统计出有多少个帐号满足…

k8s的Ingress控制器安装

Ingress文档地址:Ingress文档 1.安装helm 官网地址:helm官网安装 wget https://get.helm.sh/helm-v3.2.3-linux.amd64.tar.gz tar -zxvf helm-v3.2.3-linux-amd64.tar.gz cp linux-amd64/helm /usr/local/bin/ rootmaster01:~# helm version version.B…

​覆盖90%开发场景的《Flutter开发手册》​

哈喽,我是老刘 我本人是带客户端团队的,带着团队切换到Flutter上也已经差不多6年了。 但也不是只写客户端App。基于Flutter来说,也写过桌面端、Web端程序。 但是坦白说,真没有一个Flutter项目是同时覆盖6个平台的。 为啥呢&…

分布式版本管理工具——Git拉取Github项目到本地仓库

Git拉取(下载)github项目到本地仓库 一、前言二、拉取github项目至本地三、结束语 一、前言 不得不说,如果懂得利用好Git以及github,能够在很大程度上帮助到我们的日常学习与工作,这里我简单的给大家介绍如何使用Git下…

内部类(定义在类的内部)

a.成员内部类(Inner Class) 1.不能单独存在,必须依附于外部类。 2.Outer.Inner inner outer.new Inner(); 3.内部类可以访问当前外部类的private属性和方法,可以用”外部类名.this“访问外部实例的属性和方法。 …

Windows键盘快捷方式

键盘快捷方式是两个或多个键的组合,可用于执行通常需要鼠标或其他指针设备才能执行的任务。 使用键盘快捷方式你可以更轻松地与电脑进行交互,从而在使用 Windows 和其他应用时节省时间和精力。 大多数应用还提供加速键,以让你能够更轻松地使…

机器人笛卡尔空间轨迹规划原理与MATLAB实现

机器人笛卡尔空间轨迹规划是指在给定的笛卡尔坐标系(通常是三维空间坐标系)中规划机器人的末端执行器(如抓手、焊枪等)的移动路径。这种规划方式直观且易于理解,因为它直接关联到任务空间中机器人的位置和姿态。下面将…

分享购买率拉满的8个商品详情页设计技巧!

电子商务网站的商品详情页是商家和设计师关注的重点之一。这一页面在用户决策是否购买商品方面发挥着至关重要的作用。如果一个优质商品没有配套有效的详情页,其转化率将会显著下降,从而影响流量和销量,最终可能导致店铺的淘汰。无论销售何种…

[ComfyUI]Flux​:不花钱免费白嫖最强反推JoyCaption​,仅需几步无门槛轻松搞定

大家好我是极客菌!!! 今天文章主题将为大家介绍一款优秀的图像反推模型:Joy Caption。这是由作者Fancy Feast开发的Joy Caption模型,是在谷歌的SigLIP模型和Meta的最新Llama3.1 模型的基础之上,使用Adapte…

数学建模竞赛论文写作方法

数模竞赛论文结构剖析 摘要问题重述模型假设符号说明问题分析模型建立模型求解结果及分析检验与推广模型评价参考文献附录 摘要 摘要一般应包括: 用一两句话说明原题中要求解决的问题明确说明建立了什么模型,在数学上属于什么类型,建模的…

Spring Boot技术构建的创新在线拍卖系统

系统测试 1.1系统测试的目的 程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃&…

PyTorch:优化读取LMDB数据的五大策略

LMDB:http://www.lmdb.tech/doc/index.html lmdb存放千万级别数据IO问题 https://github.com/OFA-Sys/Chinese-CLIP/issues/46 PyTorch LMDB读取慢的原因 LMDB是一种嵌入式键值存储引擎,它具有快速、可靠和高效的特点。然而,与常规文件格式相比&#…

提前购|基于SSM+vue的创新型产品提前购平台(源码+数据库+文档)

创新型产品提前购平台 基于SSMvue的创新型产品提前购平台 一、前言 二、系统设计 三、系统功能设计 系统功能实现 后台模块实现 管理员模块实现 发布企业管理实现 个体管理实现 投资企业管理实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选…

110001安庆巡检_工艺巡检

安庆巡检_工艺巡检 一. 工艺配置二. 点检计划三. 点检任务四. 复检任务1. 复检列表1.1 页面展示 2. 复检任务下发2.1 操作说明2.2 业务说明2.3 表关联说明ps_recheck_task工艺工序参数_复检详情表 3. 复检详情2.1 获取参数点检详情2.2 获取复检详情列表 4. app端复检任务提交4.…

1989-2022年各省基尼系数、城镇基尼系数、农村基尼系数数据

1989-2022年各省基尼系数、城镇基尼系数、农村基尼系数数据 1、时间:1989-2022年 2、来源:各省年鉴、统计年鉴 3、范围:31省 4、指标:基尼系数、城镇基尼系数、农村基尼系数 5、计算说明:参照田为民的文章《中国基…