Torres-tao  

1、字符

​ .:匹配任意字符,除换行符\n之外,.abc匹配abc。
​ \:转义字符,使后一个字符改变原来的意思,a.bc匹配abc
​ [...]:字符集,对应字符集中的任意字符,第一个字符是^则取反。a[bc]d匹配abd和acd

2、预定义字符集

​ \d:数字[0-9]
​ \D:非数字[^\d]
​ \s:空白字符[空格\t\r\n\f\v]
​ \S:非空白字符[^\s]
​ \w:单词字符[a-zA-Z0-9_]
​ \W:非单词字符[^\w]

3、数量词

​ *:匹配前一个字符0或无限次。a1*b匹配ab、a1b、a11b...
​ +:匹配前一个字符1或无限次。a1+b匹配a1b、a11b...
​ ?:匹配前一个字符0或1次。a1?b匹配ab、a1b
​ {m}:匹配前一个字符m次。a1{3}b匹配a111b
​ {m,n}:匹配前一个字符m~n次。a1{23}b匹配a11b、a111b

4、边界匹配

:匹配字符串开头,如abc匹配以abc开头的字符串
​ $:匹配字符串结尾,如abc$匹配以abc结尾的字符串
​ \A:仅匹配字符串开头,如\Aabc
​ \Z:仅匹配字符串结尾,如abc\Z

5、常用模块

​ python的re模块提供了两种不同的原始操作:match和search。match是从字符串的起点开始匹配,而search是对字符串做任意匹配。常用做法如下:
​ re.compile(pattren,flags=0):将字符串形式的正则表达式编译为Pattern对象
​ re.search(string[,pos[,endpos]]):从string的任意位置开始匹配
​ re.match(string[,pos[,endpos]]):从string的开头开始匹配
​ re.findall(string[,pos[,endpos]]):从string任意位置开始匹配,返回一个列表
​ re.finditer(string[,pos[,endpos]]):从string任意位置开始匹配,返回一个迭代器。一般匹配使用findall即可,大数量的匹配使用finditer比较合适。

posted on 2022-03-24 14:52  雷子锅  阅读(66)  评论(0编辑  收藏  举报