一、正则表达式元字符
. 匹配除换行符以外的任意字符
[0-9a-zA-Z_] 字符集合,匹配包含的任一个字符,下划线
[^abc] 匹配除abc外的所有字符
\d 匹配所有的数字,相当于[0-9]
\D 匹配非数字字符,相当于[^0-9]
\w 匹配数字字母下划线,相当于[0-9a-zA-Z_]
\W 匹配非数字字母下划线,相当于[^0-9a-zA-Z_]
\s 匹配任意空白符(空格,换行,回车,换页制表符)相当于[ \f\n\r\t]
\S 匹配任意非空白符,相当于[^ \f\n\r\t]
^ 行首匹配
$ 行尾匹配
\A 匹配字符串开始,和^区别:\A只匹配行首,在re.M下也不匹配他行行首
\Z 匹配字符串结束,和$区别:\Z只匹配结束,在re.M下也不匹配他行结束
\b 匹配单词的边界,空格之间
\B 匹配非单词的边界,空格之间
xyz--->假设的普通字符
(xyz) 匹配小括号内的xyz(作为一个整体去匹配)
x? 匹配0个或者1个x(非贪婪匹配)
x* 匹配0个或者任意多个x(贪婪匹配)(.*表示匹配0个或者多个字符,换行符除外)
x+ 匹配至少一个x
x 匹配确定的n个x
x 匹配至少n个x
x 匹配至少n个,最多m个x
x|y |表示或,匹配x或y
*? +? (xyz)? 最小匹配,解决贪婪匹配
?:x 类似(xyz),但不表示一个组
二、Re模块简介
re.match函数
原型:match(pattern, string, flags=0)
参数:
patter:匹配的正则表达式
string:要匹配的字符串
flags:标志位,控制正则表达式的匹配方式
功能:起始位置匹配一个模式,其他位置匹配返回None
re.match('www', 'wWw.baidu.com', flags=re.I)
# 扫描整个字符串,返回从起始位置成功的匹配
re.serch函数
原型:serch(pattern, string, flags=0)
参数:
patter:匹配的正则表达式
string:要匹配的字符串
flags:标志位,控制正则表达式的匹配方式
功能:扫描整个字符串,并返回第一个成功的匹配
eg:re.search('ren', 'good a man ren is nice ren')
re.findall函数
原型:findall(pattern, string, flags=0)
参数:
patter:匹配的正则表达式
string:要匹配的字符串
flags:标志位,控制正则表达式的匹配方式
功能:扫描整个字符串,并返回结果列表
eg:re.findall('ren', 'good a man ren is nice ren')
三、正则表达式修饰符 - 可选标志
re.L 本地化识别
re.I 忽略大小写
re.M 多行匹配,影响^和$
se.S 是.匹配包括换行符在内的所有字符
se.U 根据Unicode字符集解析字符,影响\w \W \b \B
se.X 使我们以更灵活的格式理解正则表达式
领取专属 10元无门槛券
私享最新 技术干货