Python 正则表达式示例


字面字符

序号示例及描述
1python
匹配行首。

字符类

序号示例及描述
1[Pp]ython
匹配 "Python" 或 "python"
2rub[ye]
匹配 "ruby" 或 "rube"
3[aeiou]
匹配任何一个小写元音
4[0-9]
匹配任何数字;与 [0123456789] 相同
5[a-z]
匹配任何小写 ASCII 字母
6[A-Z]
匹配任何大写 ASCII 字母
7[a-zA-Z0-9]
匹配以上任何一个
8[^aeiou]
匹配除小写元音之外的任何字符
9[^0-9]
匹配除数字之外的任何字符

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

特殊字符类

序号示例及描述
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 个或多个 y
3ruby+
匹配 "rub" 加 1 个或多个 y
4\d{3}
精确匹配 3 个数字
5\d{3,}
匹配 3 个或更多数字
6\d{3,5}
匹配 3、4 或 5 个数字

非贪婪重复

这将匹配最少的重复次数 -

序号示例及描述
1<.*>
贪婪重复:匹配 "<python>perl>"
2<.*?>
非贪婪:匹配 "<python>" 中的 "<python>perl>"

使用括号进行分组

序号示例及描述
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"。

更新于: 2020年1月31日

274 次查看

开启你的 职业生涯

完成课程获得认证

立即开始
广告