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

参考链接

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

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

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


相关推荐

  • 小程序点击复制功能_怎么复制小程序链接

    小程序点击复制功能_怎么复制小程序链接先来说明一下我们需要实现的最终效果:用户点击之后复制页面内容。参考详情一、长按复制:长按复制,在微信小程序内的文字无法长按复制,除了text节点以外,但是要在text标签内加一个“selectable”属性。话不多说,我们直接上代码1.WXML<textselectable=”true”>长按复制<text/>二、一键复制:添加点击事件,绑定…

    2022年9月29日
    2
  • Laravel 加载第三方类库的方法

    Laravel 加载第三方类库的方法

    2021年10月25日
    40
  • kafka 集群测试

    kafka 集群测试1.ISR集合2.消费者3.brokersleader4.zookeeper

    2022年4月25日
    34
  • linux下.tar.gz和.gz文件解压详解[通俗易懂]

    linux下.tar.gz和.gz文件解压详解[通俗易懂].tar.gz和.gz文件是两种不同的文件,需要区别对待,解压命令当然也不同咯,下面来分享一下他们各自的解压方法。1..tar.gz文件,这种文件是tar文件的压缩文件,可以使用tar命令进行解压。例如:解压:tarzxvfpythontab.tar.gztar-xjvfhttpd-2.4.4.tar.bz2解压文件到指定文件夹:tarxzvf…

    2022年4月27日
    47
  • mysql 各个版本的驱动 jar 包

    mysql 各个版本的驱动 jar 包http://central.maven.org/maven2/mysql/mysql-connector-java/

    2022年5月21日
    41
  • 周鸿祎说腾讯_周鸿祎的3Q

    周鸿祎说腾讯_周鸿祎的3Q6月10日老杳吧的一个手机厂商聚会上,奇虎360董事长周鸿祎有一段很有意思的发言。他用充满煽动性的语言对手机厂商们描述了市场环境、分析了自己的“敌人”小米科技和整个互联网的“敌人”腾讯,并极力为自己的360手机合作平台招徕伙伴。他对在场的手机和相关硬件生产商说,“现在所有的互联网公司在琢磨怎么做手机的同时,我觉得手机公司应该琢磨自己怎么转型。” 酷派、中兴、华为一年出多少手机,这个量比小米

    2025年11月19日
    7

发表回复

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

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