在 Python专门术语中,有两种主要方法完成模式匹配:搜索(searching)和匹配(matching)。搜索即在字符串任意部分中查找匹配的模式,而匹配是指,判断一个字符串能否从起始处全部或部分的匹配某个模式。搜索通过 search() 函数或方法来实现,而匹配是以调用 match() 函数或方法实现的。
| 记号 | 说明 | 例子 |
| literal | 匹配字符串的值 | foo |
| re1|re2 | 匹配re1或re2 | boo|bar |
| . | 匹配任何字符(换行符除外) b.b | |
| ^ | 匹配字符串的开始 | ^Dear |
| $ | 匹配字符串的结尾 | /bin/*sh$ |
| * | 匹配前面的正则式零或多次 | [A-Za-Z0-9]* |
| + | 匹配前面的正则式一次或多次 | [a-z]+\.com |
| ? | 匹配前面的正则式零次或多次 | goo? |
| {N} | 匹配前面的正则式N次 | [0-9]{3} |
| {M, N} | 匹配出现M次到N次的正则式 | ·0-9[{5-9} |
| [...] | 匹配出现的任意一个字符 | [aeiou] |
| [...a-z..] | 匹配出现在a到z的一个字符 | [A-Za-z] |
| [^...] | 不匹配出现的任何一个字符 | [^aeiou] |
| (...) | 匹配括号中RE,并保存为子组 | ([0-9){3}) |
| \d | 匹配任何数字(\D反意) | data\d.txtd |
| \w | 匹配任何数字字母字符(\W反意) | |
| \s | 匹配任何空白符(\S反意) | |
| \b | 匹配单词边界(\B反意) | \bThe\b |
| \c | 逐一匹配特殊字符 | |
| \A (\Z) | 匹配字符串的起始(结束) |
正则表达式模式 匹配的字符串 \w+-\d+ 一个由字母或数字组成的字符串,和至少一个数字,两部分中间由连字符连接 [A-Za-z]\w* 第一个字符是字母,其余字符(如果存在的话),是字母或数字(它几乎等价于 Python 语言中合法的标识符 \d{3}-\d{3}-\d{4} (美国)电话号码,前面带区号前缀,例如 800-555-1212 \w+@\w+.com 简单的 XXX@YYY.com 格式的电子邮件地址 \d+(.\d*)? 表示简单的浮点数 Mr?s?. )?[A-Z][a-z]* [ A-Za-z-]+ 名字和姓氏,对名字的限制(首字母大写,其它字母(如果存在)小写),全名前有可选的称谓(“Mr.,”“Mrs.,” “Ms.,” 或 “M.,”),姓氏没有什么限制,允许有多个单词、横线、大写字母。
一对圆括号(()) 和正则表达式一起使用时可以实现以下任意一个(或两个)功能: * 对正则表达式进行分组 * 匹配子组

