特殊字符表

Python re模块
由于渲染问题下面表格的|使用I代替。

特殊字符 意义 示例
. 默认情况下匹配除了换行符以外的任何字符,在DOTALL模式下,可以匹配任意字符 a.c
^ (Caret)插入符,匹配起始位置的字符串,在MULTILINE模式下,可以在换行后继续匹配。 ^Hello
$ 匹配结束的字符串,也可用MULTILINE模式 abc.$匹配abc1\n
* 匹配*前的字符0个或n个 ab*匹配’a’、’ab’、’a’或含有n个b的abbbb
+ 匹配一个或多个前面的字符。 a+匹配ab和aaab,但与a*和a?不同的是, 模式a+不会匹配开始处没有’a’的字符串.
? 使得到的RE匹配前面RE的0或1次重​​复。 ab?将匹配’a’或’ab’。
{m} 次数限定符,匹配出现对应次数的字符串。 a{2}匹配aa
{m,n} 次数区间限定符,同上。左右都闭区间。 a{1,2}匹配ab中的‘a’,然而匹配aaaab就只能匹配到前面两个a。
\ 转义字符,用来匹配特殊字符。 \.
[ ] ①表示一组字符;② ‘(‘, ‘+’, ‘*’, 或 ‘)’之类的特殊字符在[]里就失去意义了,只能表示字面意思。③^的意义改变成除……以外的其他字符 ①[0-9A-Za-z]表示匹配所有的字符和数字;②[abc]匹配’a’,’b’或’c’ ③ [^^]表示除了^以外的所有字符,[^a]除a以外
AIB 将一个或多个可选字符分隔开 grayIgrey匹配gray或grey,也可以写成gr(aIe)y
(…) 确定求值顺序,(?...)特殊模式,不区分大小写和多行 (abc)+匹配abcabc666中的所有abc但不匹配ab或者bc等
\A 只匹配开头的字符串
\b 在字符串的开头或结尾匹配空字符串
\B 匹配一个不再字符串开头或结尾的空字符串
\d 匹配一个数字
\D 匹配一个非数字
\w 匹配Unicode字符,任何语言的字符,包括数字下划线
\W 匹配不是单词字符的字符,相当于[^A-Za-z0-9_]
\s 对于Unicode字符,匹配空格,包括[ \t\n\r\f\v],对于8-bit字符串考虑有空格的字符
\S 匹配不是空格的字符

贪婪模式

*, +, ?, {min,max}默认情况下都是贪婪的(尽可能多匹配), 例如:<.*>匹配<a> b <c>会将整个字符串全部匹配。添加限定符后将解除这个模式<.*?>将只匹配到<a>a{3,5}?将只匹配aaaaaa中的前3个。