预定义字符集
-
\d[0,9],\D取反
-
\s[空格\r\f\t\n\v](空白字符),\S取反
-
\w[A-Za-z0-9_],\W取反
字符
- re.findall(".","\n",re.DOTALL(可以匹配换行符)/re.S(DOTALL的缩写)),在DOTALL模式中 . 可以匹配换行符。
-
\ 反斜杠转义 , a[a,b,c]z或者| (或者abc|acb|ade)
-
. 可以匹配 除\n外的所有字符
数量词
-
* 匹配前一个字符0或无限次
-
+匹配前一个字符1或无限次
-
?匹配前一个字符0或1次
-
{m}匹配前一个字符m次
常用的方法
-
p.match(),从开头找一个,第一个匹配不到,不会匹配
-
p.search(),任何位置开始找,找一个匹配的后不找
-
p.findall()找所有
-
p.sub(替换)
-
p.compile(编译),将正则表达式编译为内部格式,从而更快地执行,re.complie(".",re.S(需要把模式放到参数里))
-
r 转换为原始字符(\n不代表换行符)
-
r"a\nbc" 输出为a\\nbc 共5个字符
-
re.finall(r“a///nb”,"a///nb")
边界匹配
- \b :表示字母数字与非字母数字的边界, 非字母数字与字母数字的边界。\B:表示字母数字与(非非)字母数字的边界,非字母数字与非字母数字的边界。
小记
-
正则表达式匹配所有字符包括换行符\n,
.
是匹配除过\n
之外的全部自符,用[\d\D]
匹配所有字符。或者是[\s\S]