正则表达式定义:正则表达式是一个特殊的字符序列,利用事先定义好的一些特定字符以及他们的组合组成一个“规则”,检查一个字符串是否与这种规则匹配来实现对字符的过滤或匹配。
re模块提供了python中正则表达式所需要的功能。
元字符定义:与自身不匹配,和一些特殊的东西匹配,且影响重复次数。
re模块中findall()方法以列表的形式返回所有能匹配的子串,如果没有找到匹配的,则返回空列表
常用的正则表达式元字符:
“.”:表示除换行符以外的任意字符
“\S” (大写S)表示不是空白符的任意字符
“[]”:指定字符集 (元字符在方括号中不起作用),方括号内的“^”表示补集,匹配不在区间范围内的字符。
“^”:匹配行首,匹配以^后面的字符开头的字符串
“$”:匹配行尾,匹配以$之前的字符结束的字符串
“\”:反斜杠后面可以加不同的字符以表示不同的特殊意义
\b匹配单词头或单词尾;
\B与\b相反,匹配非单词头或单词尾;
\d匹配任何十进制数;相当于[0-9];
\D与\d相反,匹配任何非数字字符,相当于[^0-9];
\s匹配任何空白字符,相当于[\t\n\r\f\v];
\S与\s相反,匹配任何非空白字符,相当于[^\t\n\r\f\v];
\w匹配任何字母、数字或下画线字符,相当于[a-zA-Z0-9_];
\W与\w相反,匹配任何非字母、数字和下画线字符,相当于[^a-zA-Z0-9_];
也可以用于取消所有的元字符:\\、\[。 这些特殊字符都可以包含在[]中。如:[\s,.]将匹配任何 空白字符、","或"."。
“*”:匹配位于*之前的字符或子模式的0次或多次出现
“+”:匹配位于+之前的字符或子模式的1次或多次出现
“?”:匹配位于?之前的0个或1个字符
“{m,n}”:表示至少有m个重复,至多有n个重复。m,n均为十进制数