记号
|
说明 |
样例 |
literal |
匹配字符串的值 |
foo |
re1|re2 |
匹配正则表达式re1 或 re2 |
foo|bar |
. |
匹配任意字符(除换行符) |
b.b |
^ |
匹配字符串的开始 |
^Dear |
$ |
匹配字符串的结尾 |
/bin/*sh$ |
* |
匹配前面出现的正则表达式零次或多次 |
[A-Za-z0-9]* |
+ |
匹配前面出现的正则表达式一次或多次 |
[a-z]+ |
? |
匹配前面出现的正则表达式零次或一次 |
goo+ |
{N} |
匹配前面出现的正则表达式N次 |
[0-9]{3} |
{M,N} |
匹配重复出现M到N次的正则表达式 |
[0-9]{3,5} |
[...] |
匹配字符组里任意一个字符 |
[ahfj] |
[..x-y..] |
匹配从x到y中的任意字符 |
[0-9],[A-Za-z] |
[^...] |
不匹配字符集中出现的任一字符 |
[^A-Za-z] |
(*|+|?|{})? |
用于非贪婪模式 |
.*?[a-z] |
(...) |
匹配括号中的正则表达式,并保存为子组 |
([0-9]{3})?,f(oo|u)bar |
记号 |
说明 |
样例 |
d |
匹配任何数字,和[0-9]一样 (D是d的反义:任何非数字符) |
datad+.txt |
w |
匹配任何数字字母字符,和[A-Za-z0-9]相同 (W是w的反义) |
[A-Za-z]w+ |
s |
匹配任何空白符,和[
vf]相同,(S是s的反义) |
ofsthe |
|
匹配单词边界(B是的反义) |
The |
n |
匹配已保存的子组 |
price:16 |
c |
逐一匹配特殊字符c |
., \, * |
A() |
匹配字符串的开始(结尾) |
ADear |
函数/方法 |
描述 |
compile(pattern, flags=0) |
对正则表达式模式pattern进行编译,flags可选参数 |
match(pattern, string, flags=0) |
用pattern匹配字符串string开头,如成功则返回匹配对象,否则返回None |
search(pattern, string, flags=0) |
在字符串string中搜索pattern的第一次出现,如成功则返回匹配对象,否则返回None |
findall(pattern, string[,flags]) |
在字符串string中搜索pattern的所有出现,返回匹配对象的列表 |
finditer(pattern, string[,flags]) |
和findall相同,但返回的是迭代器 |
split(pattern, string, max=0) |
根据pattern把string分割为一个列表,并返回 |
sub(pattern, repl, string, max=0) |
把string中匹配到的pattern换成repl |
subn(pattern, repl, string, max=0) |
和sub相同,但并返回替换次数 |
group(num=0) |
返回全部匹配对象(或第num个子组) |
groups() |
返回一个包含全部匹配的子组的元组 |
正则表达式默认是贪心匹配的,如果正则表达式模式中使用到通配字,那它在按照从左到右的顺序求值时,会尽量“抓取”满足匹配的最长字符串。有时需要“抓取”最短字符串,因此就需要使用非贪心匹配。非贪婪操作符“?”,可以用在“*”,“+”,“?”的后面。