今天继续正则表达式。

模块re的一些重要函数:

函数 作用
compile(pattern[,flags]) 根据包含正则表达式的字符串创建模式对象
search(partten,string[,flags]) 在字符串中查找模式
match(pattern,string[,flags]) 在字符串开头匹配模式
split(partten,string[,maxsplit=0]) 根据模式匹配字符串
findall(partten,string) 返回一个列表,其中包含字符串中所有与模式匹配的子串
sub(pat,repl,string[,count=0]) 将字符串中所有模式匹配pat的子串替换为repl
escape(string) 对字符串中所有正则表达式特殊字符进行转义

re.split使用正则表达式指定分隔符,返回子串列表。maxsplit指定最多分割多少次(不填为无数次):

import re
a="foo,bar,max,,,,xxx,yyy,zzzz"
print(re.split("[, ]+",a,maxsplit=4))

re.pat使用示例:

import re
pat="[a-zA-Z]+"
a="foo,bar,Max,,,,x'xx,YYHGF,??zzzz----"
print(re.findall(pat,a))
print(re.findall("[.?\\-,]+",a))

匹配对象和编组

模式的哪部分与子串的哪部分匹配的信息成为编组。

例如:r”www.(.+).com$”的编组0是整个字符串,编组1是www. 和 .com中间的内容。

函数 作用
group([group1,······]) 获取与给定子模式(编组)匹配的字符串
start([group]) 返回与给定编组匹配的子串的起始位置
end([group]) 返回与给定编组匹配的子串的终止位置
span([group]) 返回与给定编组匹配子串的起始和终止位置