正则表达式的功能:字符串的模糊匹配查询
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(编组名)得到对应分组的值