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

在 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.mzph.cn/news/878810.shtml

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

相关文章

网关功能介绍

在微服务架构中,网关(API Gateway)扮演着至关重要的角色,它作为客户端和微服务之间的中介,负责路由、过滤、认证、限流等职责。以下是一些常见的网关实现: Spring Cloud Gateway: Spring Cloud …

linux系统中,计算两个文件的相对路径

realpath --relative-to/home/itheima/smartnic/smartinc/blocks/ruby/seanet_diamond/tb/parser/test_parser_top /home/itheima/smartnic/smartinc/corundum/fpga/lib/eth/lib/axis/rtl/axis_fifo.v 检验方式就是直接在当前路径下,把输出的路径复制一份&#xff0…

5-2 检测内存容量

1 使用的是bios 中断, 每次进行检测都会返回一块 内容。并且标志上,这块内存是否可用。 接下来是代码: 首先是构建 一个文件夹, 两个文件。 types.h 的内容。 #ifndef TYPES_H #define TYPES_H// 基本整数类型,下面的…

全球圆柱锂电池行业领军者!比克电池亮相2024深圳eVTOL展

2024深圳eVTOL产业发展大会暨低空经济展览会将于9月23-25日在深圳坪山燕子湖国际会展中心举办。展会将通过“两天论坛三天展览”的形式展开,专注未来城市空中交通新形态、民用有人驾驶、无人驾驶航空器、城市低空物流,并讨论eVTOL的整机研发、设计、制造…

拍卖新纪元:Spring Boot赋能在线拍卖解决方案

需求分析 1.1技术可行性:技术背景 在线拍卖系统是在Windows操作系统中进行开发运用的,而且目前PC机的各项性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。 系统的开发环境和配置…

Python+selenium web测试入门基础!

自动化测试框架 from selenium import webdriver 获取浏览器对象 我这里是edge浏览器,用的是edge的webdriver # webdriver获取浏览器对象  driver webdriver.Edge() 尝试打开网站并关闭​​​​​​​ # 准备一个网址  url "https://www.baidu.com/"…

包拯断案 | 数据库从库GTID在变化 为何没有数据写入@还故障一个真相

提问:作为DBA运维的你是否遇到过这些烦恼 1、数据库从库复制链路如何正确配置表过滤信息? 2、数据库从库的GTID在变化,实际却没有数据写入,究竟是什么原因? 心中有章,遇事不慌 作为DBA的你,…

如何构建短视频矩阵?云微客开启多账号协同作战

你有没有疑惑过,为什么有些账号每一次发布视频,都要艾特一下其他账号呢?那些被艾特的账号,你有点进去关注过吗?其实做过运营的都或多或少的接触过矩阵,短视频矩阵的玩法现在也逐步成为了趋势。企业通过多账…

pyautogui进行点击失效,pyautogui.click()失效

背景:在Pycharm里,使用pythonpyautogui调用 .exe程序文件时候,当程序界面出来之后,鼠标失去反应,用pyautogui进行点击。后面尝试使用图片相似也无法实行点击。 解决方法:运行Pycharm或者其他ide的时候选择…

黑马点评2——商户查询缓存(P37店铺类型查询业务添加缓存练习题答案)redis缓存、更新、穿透、雪崩、击穿、工具封装

文章目录 什么是缓存?添加Redis缓存店铺类型查询业务添加缓存练习题 缓存更新策略给查询商铺的缓存添加超时剔除和主动更新的策略 缓存穿透缓存空对象布隆过滤 缓存雪崩解决方案 缓存击穿解决方案基于互斥锁方式解决缓存击穿问题基于逻辑过期的方式解决缓存击穿问题…

极市开发平台yolov8训练无人机数据集样例数据流程

先进入vscode,进入src_repo文件夹。 第一步,克隆一个比较好的博主的库: GitHub - Incalos/YOLO-Datasets-And-Training-Methods: This project involves making custom datasets for the YOLO series and model training methods for YOLO.…

关于蓝屏查看日志分析原因

一、前提 虽然电脑经常蓝屏,或者发生了蓝屏现象,但是仍然可以进入系统,并且可以进行桌面操作。 二、查看蓝屏日志 1.按下win键,搜索计算机管理。 2.依次点击:系统工具->事件查看器->Windows日志->系统 3.在…

【项目二】C++高性能服务器开发——日志系统(日志器,日志级别,日志事件)

知识点备忘录 其实也没啥 操作记录 在乌邦图上写的,先是模仿sylar创建了目录 进入sylar文件夹,有今天写的log.h头文件 其中log_test.cpp是为了测试log.h能否正常运行建的,只是个测试文件 log.h写了三个类,日志级别&#xff0…

PHP一站式解决方案高级房产系统小程序源码

一站式解决方案,高级房产系统让房产管理更轻松 🏠【开篇:告别繁琐,迎接高效房产管理新时代】🏠 你是否还在为房产管理的繁琐流程而头疼?从房源录入、客户咨询到合同签订、售后服务,每一个环节…

【2024数模国赛赛题思路公开】国赛C题第二套思路丨附可运行代码丨无偿自提

2024年国赛C题第二套解题思路 第一问:2024~2030年农作物的最优种植方案 【问题分析】 题目要求为某乡村在2024~2030年制定农作物的最优种植方案,目的是最大化收益,并需考虑两种销售情况: 1. 超过预期销售量的部分滞销&#xff0…

【LeetCode】05.最长回文子串

题目要求 解题思路 这一类型(回文子串)主要有两种解决方法,一种是动态规划,另一种是中心拓展算法。 动态规划: 本质问题就是在i-j区间是不是回文的。这样的话我们在 i 和 j 位置的值相等时,判断如下三种情…

SQL-多表查询

1、多表关系 一对多、多对一:在多的一方建立外键,指向一的一方。 多对多:至少两个外键,通过中间表维护。 一对一 2、多表查询概述 3、内连接 4、外连接 5、自连接 6、联合查询 7、子查询 8、多表查询案例 # 1、多表关系 #…

语音测试(一)ffmpeg视频转音频

视频转音频 下载ffmpeg工具进入bin目录cmd进入控制台输入命令 ffmpeg.exe -i ./视频.mp4 ./音频.wav命令说明 ffmpeg -i input.mp4 output.mkv FFmpeg 可能会尝试自动选择合适的编码器对视频和音频进行重新编码,以便适应 MKV 格式的要求ffmpeg -i input.mp4 -c c…

linux 内核代码学习(八)

总体目标:由于fedora10 linux发行版中自带的linux2.6.xx内核源码规模太庞大了,对于想通读内核源码的爱好者来说太困难了,因此选择了linux2.4.20内核来进行测试(最终是希望能够实现linux1.0内核的源码完全编译和测试)。…

Rust的数据类型

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust到底值不值得学,之一 -CSDN博客 Rust到底值不值得学,之二-CSDN博客 3.5 数据类型的定义和分类 在Rust…