python 正则表达式匹配数字或者小数点_五位小数正则表达式

python 正则表达式匹配数字或者小数点_五位小数正则表达式在对文本关键信息进行提取的过程中,通常需要使用正则表达式匹配。这篇笔记整理汇总Python中可能用到的与数值相关的正则表达式。正则表达式基础正则表达式是用字符串表示的一种语法,用于描述一种字符串匹配的模式。正则表达式中大多数字符的含义是通用的,比如符号^和$在绝大多数语言的正则表达式中都表示行头和行尾;但也可能在某些语法上存在差异,这需要依据特定语言而定。Python的正则表达式匹…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在对文本关键信息进行提取的过程中,通常需要使用正则表达式匹配。

这篇笔记整理汇总 Python 中可能用到的与数值相关的正则表达式。

正则表达式基础

正则表达式是用字符串表示的一种语法,用于描述一种字符串匹配的模式。 正则表达式中大多数字符的含义是通用的,比如符号 ^ 和 $ 在绝大多数语言的正则表达式中都表示行头和行尾;但也可能在某些语法上存在差异,这需要依据特定语言而定。

Python 的正则表达式匹配

在 Python 语言中,通常使用 re 模块完成正则表达式的匹配。 使用 re.match 函数尝试从字符串的起始位置匹配一个模式,而 re.search 扫描整个字符串并返回第一个成功的匹配。 比如使用 re.match 方法:

>>> import re

>>> print(re.match(‘abc’, ‘abcd’))

>>> print(re.match(‘abc’, ‘babcd’))

None

比如使用 re.search 方法:

>>> import re

>>> print(re.search(‘abc’, ‘abcd’))

>>> print(re.search(‘abc’, ‘babcd’))

使用 re.compile 函数可以编译一个正则表达式,生成正则表达式对象,后续使用 match() 和 search() 方法:

>>> pattern = re.compile(r’abcde*’)

>>> print(pattern.search(‘babcd’))

>>> print(pattern.match(‘babcd’))

None

可以看出,match 和 search 方法的主要差别,还是在于是否要求输入字符串从开始字符起就匹配正则表达式描述的字符串模式。 具体详细参数使用可以参考 官方文档。

Python 匹配数值

在一段文本查找一个纯数字匹配,可以使用这样的正则表达式:

>>> pattern = re.compile(r’\d+’)

>>> pattern.search(‘abcd32sfs’)

不过现实场景中,数值可能并不是纯数字的形式呈现,往往可能包含了符号、小数点、指数等。关于符号

对于正负号,对于强制或可选的情况可以使用 [-+] 或 [-+]? 表示。普通数字

可以使用 [0-9] 或 \d 表示,两者是等价的。小数点

由于符号 . 在正则表达式中是关键符号有特殊含义,表示小数点需要使用转义字符 \.。指数

通常科学计数法的指数形式会使用 [eE][-+]?[0-9]+ 表示,因为符号 e 或 E 后必须跟着至少一个数字才有意义。

实例

综上所述,通过上述几个部分的组合,能够拼出满足特定要求的正则表达式。案例1

强制小数点的浮点数,小数点前必须有数值(不能是 .56)。

^[-+]?[0-9]+\.[0-9]+$案例2

强制小数点的浮点数,小数点前可以无数值(可以是 .56)。

^[-+]?[0-9]*\.[0-9]+$案例3

小数点可选,但如果存在后面一定要有数值。

^[-+]?([0-9]+(\.[0-9]+)?|\.[0-9]+)$案例4

小数点可选,如果前面有整数对后面不做要求,如果前面没有整数后面一定要有数值。

^[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)$案例5

小数点可选,如果前面有整数对后面不做要求,如果前面没有整数后面一定要有数值,可选的指数部分。

^[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)([eE][-+]?[0-9]+)?$python 正则表达式匹配数字或者小数点_五位小数正则表达式

总结

笔记简单整理了 Python 使用正则表达式的方式以及常用的数值匹配正则表达值,可供查阅。

参考链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181999.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 大数据概述「建议收藏」

    大数据概述「建议收藏」目录前言1.1大数据概念及价值1.1.1大数据的特征(特点)(1)规模性(Volume)(2)多样性(Variety)(3)高速性(Velocity)(4)价值性(Value)1.2大数据数据源1.3大数据技术应用场景1.4大数据处理流程及技术收集数据数据预处理与存储数据处理与分析数据可视化与应用环节1.5大数据与云计算的关系1.6大数据与人工智能的关系前言现在的社会是一个科技与信息高速发展的社会,人们之间的交流越来..

  • 红旗 Linux 官方社区_centos桌面图标

    红旗 Linux 官方社区_centos桌面图标参考资料下载:http://www.ctdisk.com/u/665442 计算机和网络技术不断推进着人类的生产力,Linux的诞生又为之带来一场开放与自由的变革。现在,作为亚洲最大、发展最迅速的Linux产品发行商,北京中科红旗软件技术有限公司(红旗软件)引领着这场变革的方向,通过提供高品质的产品和服务,开创全新的计算体验,帮助企业增强其整体竞争力,提高个人工作效率,将用户业务价值和Li

  • C++\QT常见面试题[通俗易懂]

    C++\QT常见面试题[通俗易懂]1.C与C++的区别2.深拷贝和浅拷贝的区别3.指针和引用的区别4.什么是面向对象,面向对象的三大特征是什么?5.static关键字的用法6.const关键字的用法7.什么是函数重载8.创建的对象有几种方式,有什么区别9.什么是构造函数10.什么是this指针11.抽象类是什么12.什么是封装、继承、多态13.私有继承,保护继承和公有继承的区别14.友元函数15.new和delete16.C++STL容器有哪些17.什么是面向对象编程的开放封闭原则?18.内联函数与宏的区

  • kill命令杀死所有进程_linux杀死一个进程

    kill命令杀死所有进程_linux杀死一个进程1kill:根据进程号(PID)杀死进程在linux上,一般常用的杀死进程的命令是kill,但是也有缺陷,下面说1、查看指定名称的进程,如下我查看运行python程序的进程pythonaux|greppython2、根据进程号(PID)杀死进程:第二列显示的就是进程号killPID3、强制杀死进程,有些进程可能杀不死,就加个-9参数,强制让它死掉!kill-9PID5、杀死多个进程,在后面跟多个进程的PID号即可kill-9PID1PID2PID3…

  • Python虚拟环境包管理工具

    Python虚拟环境包管理工具

  • dp3003打印机怎么清零_最小宽度dp

    dp3003打印机怎么清零_最小宽度dp有台奇怪的打印机有以下两个特殊要求:打印机每次只能打印由 同一个字符 组成的序列。每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数。示例 1:输入:s = “aaabbb”输出:2解释:首先打印 “aaa” 然后打印 “bbb”。示例 2:输入:s = “aba”输出:2解释:首先打印 “aaa” 然后在第二个位置打印 “b” 覆盖掉原来的字符 ‘a’。 提示:1 <= s.le

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号