1.re模块
re.match
函数尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功会返回none
re.match(pattern,string,flags=0)
匹配对象方法
group(num=0) #匹配的整个表达式的字符串
groups() #返回一个包含所有小组字符串的元组

re.search(pattern,string,flags=0)
扫描整个字符串并返回第一个成功的匹配

re.sub(pattern,repl,string,count=0,flags=0)
替换字符串中的匹配项

re.compile(pattern[,flags])
生成一个正则表达式对象
flags匹配模式:
re.l 忽略大小写
re.L 表示特殊字符集依赖于当前环境
re.M 多行模式
re.S 即为.并且包括换行符在内的任意字符
re.U 表示特殊字符集依赖于Unicode字符属性数据库
re.X 为了增加可读性,忽略空格和#后面的注释

findall(string[,pos[,endpos]])
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表
pos起始位置,endpos结束位置

re.finditer(pattern,string,flags=0)
在字符串中找到正则表达式所匹配的所有子串,并把他们作为一个迭代器返回

re.split(pattern,string[,maxsplit=0,flags=0])
按能够匹配的子串将字符串分割后返回列表
maxsplit分割次数,默认为0,不限制次数

2.正则表达式模式
^ 匹配字符串的开头
$ 匹配字符串的末尾
. 匹配任意字符,除了换行符
[…] 一组字符
[^…] 匹配不在[]内的字符
re* 匹配0个或多个的表达式
re+ 匹配1个或多个的表达式
re? 匹配0个或1个由前面的正则表达式定义的片段
re{n} 精确匹配n个前面表达式
re{n,} 匹配n个前面表达式
re{n,m} 匹配n到m次由前面的正则表达式定义的片段
a|b 匹配a或b
(re) 对正则表达式分组并记住匹配的文本
(?imx) 正则表达式包含三种可选标志,只影响括号中的区域
(?-imx) 正则表达式关闭可选标志
(?:re) 类似(…)但是不表示一个组
(?#…) 注释
(?=re) 前向肯定界定符
(?!re) 前向否定界定符
(?>re) 匹配的独立模式
\w 匹配字母数字及下划线
\W 匹配非字母数字及下划线
\s 匹配任意空白字符
\S 匹配任意非空字符
\d 匹配任意数字
\D 匹配任意非数字
\A 匹配字符串开始
\Z 匹配字符串结束,如果存在换行,只匹配到换行前的结束字符串
\z 匹配字符串结束
\G 匹配最后匹配完成的位置
\b 匹配一个单词边界
\B 匹配非单词边界
\n,\t 匹配一个换行符,匹配一个制表符
\1…\9 匹配第n个分组的内容

3.正则表达式实例
[Pp]ython 匹配Python或python
rub[ye] 匹配ruby或者rube
[aeiou] 匹配中括号内的任意一个字母
[0-9]匹配任何数字
[a-z]匹配任何小写字母
[A-Z]匹配任何大写字母
[a-zA-Z0-9] 匹配任何字母及数字