Python中的正则表达式示例

文字字符

序号范例与说明
1python
匹配行首。

Character 类

序号范例与说明
1[pp] ython
匹配“ Python”或“ python”
2rub [ye]
匹配“ ruby”或“ rube”
3[aeiou]
匹配任何一个小写的元音
4[0-9]
匹配任意数字;与[0123456789]相同
5[az]
匹配任何小写ASCII字母
6[AZ]
匹配任何大写ASCII字母
7[a-zA-Z0-9]
匹配以上任何一项
8[^ aeiou]
匹配小写元音以外的其他任何东西
9[^ 0-9]
匹配数字以外的任何内容

特殊字符类

序号范例与说明
1
匹配换行符以外的任何字符
2\ d
匹配数字:[0-9]
3\ D
匹配一个非数字:[^ 0-9]
4\ s
匹配空格字符:[\ t \ r \ n \ f]
5\ S
匹配非空格:[^ \ t \ r \ n \ f]
6\ w
匹配一个单词字符:[A-Za-z0-9_]
7\ W
匹配一个非单词字符:[^ A-Za-z0-9_]

重复案例

序号范例与说明
1Ruby?
匹配“ rub”或“ ruby”:y是可选的
2ruby *
匹配“ rub”加上0或更多ys
3ruby +
匹配“ rub”加上1或多个ys
4\ d {3}
精确匹配3位数字
5\ d {3,}
匹配3个或更多数字
6\ d {3,5}
匹配3、4或5位数字

非贪婪重复

这匹配最小的重复次数-

序号范例与说明
1<。*>
贪婪重复:匹配“ <python> perl>”
2<。*?>非
贪心:匹配“ <python> perl>”中的“ <python>”

用括号分组

序号范例与说明
1\ D \ d +
无群组:+重复\ d
2(\ D \ d)+
分组:+重复\ D \ d对
3([Pp] ython(,)?)+
匹配“ Python”,“ Python,python,python”等。

反向引用

这再次匹配先前匹配的组-

序号范例与说明
1([Pp])ython&\ 1ails
匹配python&pails或Python&Pails
2(['“])[^ \ 1] * \ 1
单引号或双引号的字符串。\ 1匹配第一个匹配的组。\ 2匹配第二个匹配的组,依此类推。

备择方案

序号范例与说明
1python | perl
匹配“ python”或“ perl”
2rub(y | le))
匹配“ ruby”或“ ruble”
3Python(!+ | \?)
“ Python”后跟一个或多个!还是一个?

锚点

这需要指定匹配位置。

序号范例与说明
1^ Python
在字符串或内部行的开头匹配“ Python”
2Python $
在字符串或行的末尾匹配“ Python”
3\ APython
在字符串开头匹配“ Python”
4Python \ Z
在字符串末尾匹配“ Python”
5\ bPython \ b
在单词边界处匹配“ Python”
6\ brub \ B
\ B是非单词边界:与“ rube”和“ ruby”中的“ rub”匹配,但不能单独匹配
7Python(?=!)
如果后接感叹号,则匹配“ Python”。
8Python(?!!)
如果不带感叹号,则匹配“ Python”。