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

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


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 使用正则表达式的方式以及常用的数值匹配正则表达值,可供查阅。

参考链接

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • C语言中char、short、int、long各占多少字节

    C语言中char、short、int、long各占多少字节1byte=8bit一个字节占8个二进制位windows操作系统,32位机中,char:1个字节short:2个字节int:4个字节long:4个字节以下是windows操作系统,32位机下的代码测试结果(32位机中,指针占4个字节,如变量e):windows操作系统,64位机中,char:1个字节…

    2022年5月5日
  • 香港坚固金业的黑幕,属于非法投资平台。

    2015年4.29晚上凌晨两点半我结束了建仓操作,当时没又发现账户资金问题,后来第二天早晨发现账户被非法操作做单,所有资金信息都被在美国时间22:08开始到22:56仅仅不到一个小时时间,所有资金都频繁建仓平仓操作,导致我账户资金全部亏损。 第二天咨询客服客服回答说是我自己认为操作要么,账户信息被泄露,被他人非法操作了。他们查询说是操作IP地址是外地操作,我感觉到很可悲,

    2022年4月4日
  • kali linux木马免杀工具

    kali linux木马免杀工具1.VenomShellcodeGenerator

    2022年8月20日
  • Java面试题:详细说明一下可重入锁ReentrantLock的原理

    Java面试题:详细说明一下可重入锁ReentrantLock的原理原文地址:https://baijiahao.baidu.com/s?id=1594800969528243663&wfr=spider&for=pc一个关于打水的小故事话说从前有一个村子,在这个村子中有一口水井,家家户户都需要到这口井里打水喝。由于井水有限,大家只能依次打水。为了实现家家有水喝,户户有水用的目标,村长绞尽脑汁,最终想出了一个比较合理的方案。首先,在水井…

    2022年6月13日
  • pip卸载所有包_anaconda卸载与重装

    pip卸载所有包_anaconda卸载与重装安装和import时包的名称不一致时,比如scikit-learn和sklearn,卸载的时候还是应该用包的全称,也就是与安装时一致用pip安装的就要用pip卸载,而不是conda,反之亦然

    2022年10月19日
  • 数据仓库基础介绍

    数据仓库基础介绍

    2021年11月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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