python正则表达式使用实例 正则表达式测试工具

大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达式的函数 。

python正则表达式使用实例 正则表达式测试工具

文章插图
re模块主要定义了9个常量、12个函数、1个异常,每个常量和函数猪哥都会通过实际代码案例讲解,让大家能更直观的了解其作用!
注:为避免出现代码格式错乱,猪哥尽量使用代码截图演示哦 。
python正则表达式使用实例 正则表达式测试工具

文章插图
re模块简介
聊到Python正则表达式的支持,首先肯定会想到re库,这是一个Python处理文本的标准库 。
标准库的意思表示这是一个Python内置模块,不需要额外下载,目前Python内置模块大概有300个 。可以在这里查看Python所有的内置模块:
https://docs.python.org/3/py-modindex.html#cap-r
因为re是内置模块,所以不需要再下载,使用时直接引入即可:
import rere模块官方文档:
https://docs.python.org/zh-cn/3.8/library/re.html
re模块库源码:
https://github.com/python/cpython/blob/3.8/Lib/re.py
python正则表达式使用实例 正则表达式测试工具

文章插图
re模块常量常量即表示不可更改的变量,一般用于做标记 。
re模块中有9个常量,常量的值都是int类型!
python正则表达式使用实例 正则表达式测试工具

文章插图
上图我们可以看到,所有的常量都是在RegexFlag枚举类来实现,这是在Python 3.6做的改版 。在Python 3.6以前版本是直接将常量写在re.py中,使用枚举的好处就是方便管理和使用!
python正则表达式使用实例 正则表达式测试工具

文章插图
下面我们来快速学习这些常量的作用及如何使用他们,按常用度排序!
1. IGNORECASE语法:re.IGNORECASE 或简写为 re.I
作用:进行忽略大小写匹配 。
代码案例:
python正则表达式使用实例 正则表达式测试工具

文章插图
在默认匹配模式下大写字母B无法匹配小写字母b,而在 忽略大小写 模式下是可以的 。
2. ASCII语法:re.ASCII 或简写为 re.A
作用:顾名思义,ASCII表示ASCII码的意思,让w,W,b,B,d,D,sS只匹配ASCII,而不是Unicode 。
代码案例:
python正则表达式使用实例 正则表达式测试工具

文章插图
在默认匹配模式下w+匹配到了所有字符串,而在ASCII模式下,只匹配到了a、b、c(ASCII编码支持的字符) 。
注意:这只对字符串匹配模式有效,对字节匹配模式无效 。
3. DOTALL语法:re.DOTALL 或简写为 re.S
作用:DOT表示.,ALL表示所有,连起来就是.匹配所有,包括换行符n 。默认模式下.是不能匹配行符n的 。
代码案例:
python正则表达式使用实例 正则表达式测试工具

文章插图
在默认匹配模式下.并没有匹配换行符n,而是将字符串分开匹配;而在re.DOTALL模式下,换行符n与字符串一起被匹配到 。
注意:默认匹配模式下.并不会匹配换行符n
4. MULTILINE语法:re.MULTILINE 或简写为 re.M
作用:多行模式,当某字符串中有换行符n,默认模式下是不支持换行符特性的,比如:行开头 和 行结尾,而多行模式下是支持匹配行开头的 。

推荐阅读