今天我们主要来学习一下 正则表达式在 Python语言 中的应用!
大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达式的函数。
re模块主要定义了9个常量、12个函数、1个异常,每个常量和函数猪哥都会通过实际代码案例讲解,让大家能更直观的了解其作用!
注:为避免出现代码格式错乱,猪哥尽量使用代码截图演示哦。
一、re模块简介
聊到Python正则表达式的支持,首先肯定会想到re
库,这是一个Python处理文本的标准库。
标准库的意思表示这是一个 Python内置模块,不需要额外下载,目前Python内置模块大概有300个。可以在这里查看Python所有的内置模块: https:// docs.python.org/3/py-mo dindex.html#cap-r
因为re是内置模块,所以不需要再下载,使用时直接引入即可:
import re
re模块官方文档:https://docs.python.org/zh-cn/3.8/library/re.html
re模块库源码:https://github.com/python/cpython/blob/3.8/Lib/re.py
二、re模块常量
常量即表示不可更改的变量,一般用于做标记。
re模块中有9个常量,常量的值都是int类型!
上图我们可以看到,所有的常量都是在RegexFlag枚举类来实现,这是在Python 3.6做的改版。在Python 3.6以前版本是直接将常量写在re.py中,使用枚举的好处就是方便管理和使用!
下面我们来快速学习这些常量的作用及如何使用他们,按常用度排序!
1. IGNORECASE
语法: re.IGNORECASE 或简写为 re.I
作用: 进行忽略大小写匹配。
代码案例:
在默认匹配模式下大写字母B无法匹配小写字母b,而在 忽略大小写 模式下是可以的。
2. ASCII
语法: re.ASCII 或简写为 re.A
作用: 顾名思义,ASCII表示ASCII码的意思,让 w
, W
, b
, B
, d
, D
, s
和 S
只匹配ASCII,而不是Unicode。
代码案例:
在默认匹配模式下w+
匹配到了所有字符串,而在ASCII模式下,只匹配到了a、b、c(ASCII编码支持的字符)。
注意:这只对字符串匹配模式有效,对字节匹配模式无效。
3. DOTALL
语法: re.DOTALL 或简写为 re.S
作用: DOT表示.
,ALL表示所有,连起来就是.
匹配所有,包括换行符n
。默认模式下.
是不能匹配行符n
的。
代码案例:
在默认匹配模式下.
并没有匹配换行符n
,而是将字符串分开匹配;而在re.DOTALL模式下,换行符n
与字符串一起被匹配到。
注意:默认匹配模式下.
并不会匹配换行符n
。
4. MULTILINE
语法: re.MULTILINE 或简写为 re.M<