正则表达式的功能:字符串的模糊匹配查询

re.findall('','') # 查找所有符合条件的结果
re.findall('','',re.S)包括换行符的匹配

. 除换行符以外的任意一个符号
^ 匹配字符串的开始位置
$ 匹配字符串的末尾位置

* 0至任意
+ 1至任意
? 0至1
以上三种在后面加?变为惰性匹配
{} 指定次数

 

\d  匹配任何十进制数;      它相当于类 [0-9]。
\D  匹配任何非数字字符;    它相当于类 [^0-9]。
\s  匹配任何空白字符;      它相当于类 [ \t\n\r\f\v]。
\S  匹配任何非空白字符;    它相当于类 [^ \t\n\r\f\v]。
\w  匹配任何字母数字字符;   它相当于类 [a-zA-Z0-9_]。
\W  匹配任何非字母数字字符; 它相当于类 [^a-zA-Z0-9_]
\b  匹配一个特殊字符边界,比如空格 ,&,#等

 

给匹配内容加括号()为分组匹配,只显示匹配的内容,(?:匹配内容)则取消优先级得到全部,?P<编组名>直接访问

字符集[],里面的符号只出现一次

中只有三个符号有意义:

-:[a-zA-Z]  a到z,或者A到Z之间任意一个字母

^:[^a-zA-Z]  既非小写字母,也非大写字母

\:[\d]  仍然代指数字

re.search()只匹配一项符合规则的元素

re.match()只匹配字符串的开始的位置

通过obj.group()得到匹配到的所有字符

obj.groups()得到所有分组

obj.group(编组名)得到对应分组的值