正则表达式也叫做匹配表达式,它是由一串特定的字符组成的,一般用于查找(替换),匹配字符
引入:import re
常用方法:
match()------从头开始匹配;如果不是起始位置匹配成功的话,match() 就返回 None
compile()----用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用
findall()-----在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。
split()-----按照能够匹配的子串将字符串分割后返回列表
finditer()------和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回
search()------re.search 会在字符串内查找模式匹配,直到找到第一个匹配。
元字符
\d -------------------- 匹配数字
. --------------------- 匹配的是任意符号(除了\n)
\w ---------------- 匹配所有的有效符号(大小写字母,数字,下划线,各国语言符号)
\s ------------------- 匹配的是空白位(空格 \t(四个空格))
^ ------------------- 以xxxx开头 例如:以1开头 ^1
$ ------------------ 以xxx结尾
[] -------------------- 列举 [0123456789]等价于\d [a-z] [A-Z] [A-Za-z]
反义符
\D -------------- 不是数字
\W ------------ 特殊符号
\S --------------- 非空白位
[^] ------------------- 列举反义 注意:[^] 和 1 的区别
位数
.* ----------------- 表示的是匹配任意位(可以0位,可以是1位…)
±------------------表示的是至少一位(最少就要一位,可以n位)
?----------------- 0位或者是1位
{n,} ----------------- 至少n位
{n,m} ------------------ 表示n-m范围
分组
在正则表达式里面,使用()将正则包裹起来,会形成正则进行二次筛选