每一个正则表达式字符都只代表匹配一个字符
():分组符,可对分组内正则表达式进行或|的操作,且在使用findall()方法时优先返回分组内匹配内容
常用元字符:
^:串首匹配
$:串尾匹配
[]:单一字符匹配
[^]:单一字符取反
正则表达式常见集合(通配符):
\d:任何十进制数
\D:任何非十进制数
\s:任何空白字符
\S:任何非空白字符
\w:任何数字字母加下划线
\W:任何非数字字母加下划线
.:任何字符
正则表达式重复匹配:
?:元字符前的字符匹配零次到一次
*:元字符前的字符匹配零次到20亿次
+:元字符前的字符匹配一次到20亿次
-:匹配字符的范围
{}:元字符前的字符匹配m次到n次,写法为{m,n}
正则表达式常用函数、方法:
re.findall(r,str):以正则r查找字符串str内是否存在匹配字符\串并返回匹配字符\串
re.finditer(r.str):以正则r查找字符串str内是否存在匹配字符\串并返回一个迭代器,迭代器可用next()属性返回其中的match对象
re.match(r,str):以正则r查找字符串str的起始位置是否存在匹配字符\串并返回一个match对象
match结果包含的一些属性:
group()-返回match结果中的匹配字符
start()-返回匹配的起始位置
end()-返回匹配的结束位置
span()-返回一个元组,其中包含匹配的起始位置和结束位置
re.search(r.str):以正则r查找字符\串str内是否存在匹配字符\串并返回一个match对象,与match()方法不同之处在于search()方法不局限与匹配字符\串是否在起始位置
re.sub(r,replace,str):查找str字符\串内匹配正则表达式r的字符\串并替换为replace字符\串并返回替换后的字符\串结果
re.subn(r,replace,str):查找str字符\串内匹配正则表达式r的字符\串并替换为replace字符\串并返回替换后的字符\串结果以及替换次数
re.split(r,split,str):查找str字符\串内匹配正则表达式r的一个或多个字符并以每个匹配字符为分割点将字符串分割为一个字符\串元组并返回
re.I:匹配大小写不敏感
re.S:使通配符.能够匹配换行符(\n)在内的所有字符
re.L:使通配符.能够匹配本地化字符
re.M:可对多行字符串的多行行首和行尾进行匹配,使^和$更好用,比如读取文本
re.X:可使用多行正则表达式匹配字符串,多行正则表达式可以使逻辑更清晰