大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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 使用正则表达式的方式以及常用的数值匹配正则表达值,可供查阅。
参考链接
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181999.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...