. 它匹配除了换行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至可以匹配换行
^ 匹配行首。除非设置 MULTILINE 标志,它只是匹配字符串的开始。
$ 匹配行尾,行尾被定义为要么是字符串尾,要么是一个换行字符后面的任何位置。
* 重复0或N次
+ 重复1或N次
? 重复0或1次
{} 该限定符的意思是至少有 m 个重复,至多到 n 个重复
[] 它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集
/ 反斜杠后面可以加不同的字符以表示不同特殊意义。它也可以用于取消所有的元字符,这样你就可以在模式中匹配它们了
| 可选项,或者 "or" 操作符。
() 组
/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_]。
/A 只匹配字符串首。当不在 MULTILINE 模式,/A 和 ^ 实际上是一样的。然而,在 MULTILINE 模式里它们是不同的;/A 只是匹配字符串首,而 ^ 还可以匹配在换行符之后字符串的任何位置。
/Z 只匹配字符串尾。
/b 单词边界。这是个零宽界定符(zero-width assertions)只用以匹配单词的词首和词尾。单词被定义为一个字母数字序列,因此词尾就是用空白符或非字母数字符来标示的。
/B 另一个零宽界定符(zero-width assertions),它正好同 /b 相反,只在当前位置不在单词边界时匹配。
* 重复0或N次
+ 重复1或N次
? 重复0或1次
{m,n},其中 m 和 n 是十进制整数。该限定符的意思是至少有 m 个重复,至多到 n 个重复
match() 决定 RE 是否在字符串刚开始的位置匹配
search() 扫描字符串,找到这个 RE 匹配的位置
findall() 找到 RE 匹配的所有子串,并把它们作为一个列表返回
finditer() 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回
group() 返回被 RE 匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元组包含匹配 (开始,结束) 的位置
DOTALL, S 使 . 匹配包括换行在内的所有字符
IGNORECASE, I 使匹配对大小写不敏感
LOCALE, L 做本地化识别(locale-aware)匹配
MULTILINE, M 多行匹配,影响 ^ 和 $
VERBOSE, X 能够使用 REs 的 verbose 状态,使之被组织得更清晰易懂
更详细的正则式说明参考:http://wiki.ubuntu.org.cn/Python正则表达式操作指南#.E7.AE.80.E4.BB.8B