\n 换行符 \t 制表符
\w 匹配一个字母,数字,下划线 word
\W 除\w了以外的任意字符
\d 十进制数 digit
\D 除十进制数之外的任务字符
\s 空白字符 [\s]表示,只要出现空白就匹配
\S 除空白字符任意字符 space [\S]表示,非空白就匹配
原子表 [] : 表示从[]任意提出一个元素出来
‘tao[xyz]yun’ 只能任意提出一个 x or y or z
[^xuy] 除了xuy以外的字符都可以, ^表示非的意思 。 ^在[]表示 开始位置
. 除换行外任意一个字符
^ 不再[]中表示,开始位置,^tao... 表示开始必须是tao
$ 表示结束位置 tao$结束必须 o结尾
* 0,1,多次 tao.* 表示前面的原子(.),能匹配到多少次,且这里能一直匹配到结尾
? 0,1次 懒惰模式,和贪婪模式
+ 1次,多次 tao+ 表示前面的原子(o)出现至少1次,或多次
{n} 前面出现恰好n次 jun{2} 前面的原子n出现2次
{n,} 至少出现n次
{n,m} 至少出现n次,最多出现m次
| 或,模式选择符 [.com|.cn]
() 模式单元
I (i的大写字母re.I)匹配时忽略大小写 num = re.search(pat,stringName,re.I)
M 多行匹配
L 本地化识别匹配
U unicode
S 让. 匹配换行符 意思:可以多行匹配
贪婪模式 p.*y *表示:前面的原子出现0,1,多次,前面是.:任意字符除了换行。所以都会匹配
懒惰模式 p.*?y 表示找到就停止 p.*?y 找到poy 之后就不会在找了
Re.match是从头开始匹配
Re.search是任意地方开始匹配
Re.sub() 替换
re.compile(正则表达式).finall(数据) # 还有一个生成器 filter