Python 正则表达式示例
字面字符
序号 | 示例及描述 |
---|---|
1 | python 匹配行首。 |
字符类
序号 | 示例及描述 |
---|---|
1 | [Pp]ython 匹配 "Python" 或 "python" |
2 | rub[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_] |
重复情况
序号 | 示例及描述 |
---|---|
1 | ruby? 匹配 "rub" 或 "ruby":y 可选 |
2 | ruby* 匹配 "rub" 加 0 个或多个 y |
3 | ruby+ 匹配 "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 匹配第二个组匹配的任何内容,依此类推。 |
备选方案
序号 | 示例及描述 |
---|---|
1 | python|perl 匹配 "python" 或 "perl" |
2 | rub(y|le)) 匹配 "ruby" 或 "ruble" |
3 | Python(!+|\?) "Python" 后跟一个或多个 ! 或一个 ? |
锚点
这需要指定匹配位置。
序号 | 示例及描述 |
---|---|
1 | ^Python 匹配字符串或内部行的开头处的 "Python" |
2 | Python$ 匹配字符串或行末尾的 "Python" |
3 | \APython 匹配字符串开头的 "Python" |
4 | Python\Z 匹配字符串结尾处的 "Python" |
5 | \bPython\b 匹配单词边界处的 "Python" |
6 | \brub\B \B 是非单词边界:匹配 "rube" 和 "ruby" 中的 "rub",但不能单独匹配 |
7 | Python(?=!) 如果后面跟着感叹号,则匹配 "Python"。 |
8 | Python(?!!) 如果后面不跟着感叹号,则匹配 "Python"。 |
广告