re模块
核心函数和方法
match函数
尝试用正则表达式方法从字符串的开头匹配,如果匹配成功,则返回一个匹配对象;否则返回None
search函数
在字符串中查找正则表达式模式的第一次出现,如果匹配成功,则返回一个匹配对象,否则返回None
group方法
使用match或search匹配成功后,返回的匹配对象可以通过group方法获取匹配内容
findall函数
在字符串中查找正则表达式模式的所有(非重复)出现;返回一个匹配对象的列表
finditer函数
和findall()函数有相同的功能,但返回的不是类表而是迭代器;对于每个匹配,该迭代器返回一个匹配对象
compile函数
对正则表达式模式进行编译,返回一个正则表达式对象
不是必须要用这种方式,但在大量匹配的情况下,可以提升效率
split方法
根据正则表达式中的分隔符把字符分割为一个列表,并返回成功匹配的列表
字符串也有类似的方法,但是正则表达式更加灵活
sub方法
把字符串中所有匹配正则表达式的地方替换成新的字符串
正则表达式
匹配单个字符
记号 说明
. 匹配任意字符(换行符除外)
[···x-y···] 匹配字符组里的任意字符
[^ ···x-y···] 匹配不在字符组里的任意字符
d 匹配任意数字,与[0-9]同义
w 匹配任意数字字母字符,与[0-9a-zA-Z]同义
s 匹配空白字符,与[
vf
]同义
匹配一组字符
记号 说明
literal 匹配字符串的值
re1|re2 匹配正则表达式re1或re2
* 匹配前面出现的正则表达式零次或多次
+ 匹配前面出现的正则表达式一次或多次
? 匹配前面出现的正则表达式零次或1次
{M,N} 匹配前面出现的正则表达式至少M次最多N次
其他元字符
记号 说明
^ 匹配字符串的开始
$ 匹配字符串的结尾
匹配单词的边界
() 对正则表达式分组
n 匹配以保存的子组
贪婪匹配
*、+和?都是贪婪匹配操作符,在其后加上?可以取消其贪婪匹配行为
正则表达式匹配对象通过groups函数获取子组