标签:io 使用 sp on bs amp as nbsp python
除了控制字符(+ ? . * ^ $ ( ) [ ] { } | \),所有字符匹配自己。可以通过用反斜杠前就转义控制字符。
下表列出了Python中可用正则表达式语法:
| 模式 | 描述 |
|---|---|
| ^ | 匹配的开始的 |
| $ | 匹配行尾 |
| . | 匹配除换行符的任何单个字符。使用-m选项允许其匹配换行符也是如此。 |
| [...] | 匹配括号内任何单个字符 |
| [^...] | 匹配任何单个字符不在括号中 |
| re* | 匹配0个或多个匹配前面表达式。 |
| re+ | 匹配1个或多个先前出现的表达式。 |
| re? | 匹配0或1前面出现的表达式。 |
| re{ n} | 精确匹配n个前面表达式的数量。 |
| re{ n,} | 匹配n或多次出现上述表达式。 |
| re{ n, m} | 匹配至少n次和前面表达式的大多数出现m次。 |
| a| b | 匹配a或b。 |
| (re) | 组正则表达式并记住匹配的文本。 |
| (?imx) | 暂时切换上 i, m 或 x正则表达式的选项。如果括号中,仅该区域受到影响。 |
| (?-imx) | 暂时关闭切换 i, m, 或 x 正则表达式的选项。如果括号中,仅该区域受到影响。 |
| (?: re) | 组正则表达式而不匹配的记住文字。 |
| (?imx: re) | 暂时切换上i, m, 或 x 括号内的选项。 |
| (?-imx: re) | 暂时关闭切换i, m, 或 x 括号内的选项。 |
| (?#...) | 注释 |
| (?= re) | 指定使用的模式位置,没有一个范围。 |
| (?! re) | 指定使用模式取反位置,没有一个范围。 |
| (?> re) | 匹配独立的模式而不反向追踪。 |
| \w | 匹配单词字符。 |
| \W | 匹配非单词字符 |
| \s | 匹配的空白,等价于[\ t\ñ\ r\ F] |
| \S | 匹配非空白 |
| \d | 匹配的数字。等价于[0-9] |
| \D | 匹配非数字 |
| \A | 匹配字符串的开始 |
| \Z | 匹配字符串的结尾。如果一个换行符的存在,它只是换行之前匹配 |
| \z | 匹配字符串的结尾 |
| \G | 匹配点,最后一次匹配结束 |
| \b | 匹配单词边界之外时,括号内。匹配退格键(0×08),括号里面的时候 |
| \B | 匹配非单词边界 |
| \n, \t, etc. | 匹配换行符,回车符,制表符等 |
| \1...\9 | 匹配第n个分组的子表达式。 |
| \10 | 匹配,如果它已经匹配第n个分组的子表达式。否则指的是一个字符码的八进制表示。 |
| 示例 | 描述 |
|---|---|
| python | 匹配 "python". |
| 示例 | 描述 |
|---|---|
| [Pp]ython | 匹配 "Python" 或 "python" |
| rub[ye] | 匹配 "ruby" 或 "rube" |
| [aeiou] | 匹配任何一个小写元音 |
| [0-9] | 匹配任何数字;如果[0123456789] |
| [a-z] | 匹配任何小写ASCII的字母 |
| [A-Z] | 匹配任何大写的ASCII字母 |
| [a-zA-Z0-9] | 匹配任何上述的 |
| [^aeiou] | 匹配任何不是小写元音 |
| [^0-9] | 匹配任何非数字 |
| 示例 | 描述 |
|---|---|
| . | 匹配除换行符外的任何字符 |
| \d | 匹配一个数字:[0-9] |
| \D | 匹配一个非数字:[^0-9] |
| \s | 匹配一个空白字符:[\ t\ r\ñ\ F] |
| \S | 匹配非空白:[^\ t\ r\ñ\ F] |
| \w | 匹配一个单词字符:[A-ZA-Z0-9 _] |
| \W | 匹配非单词字符:[^ A-ZA-Z0-9 _] |
| 示例 | 描述 |
|---|---|
| ruby? | 匹配“rub”或“ruby”:y是可选的 |
| ruby* | 匹配“rub”加上0个或多个ys |
| ruby+ | 匹配“rub”加上1个或多个ys |
| \d{3} | 完全匹配3个数字 |
| \d{3,} | 完全匹配3个及以上的数字 |
| \d{3,5} | 匹配3,4或5个数字 |
匹配最小重复次数:
| 示例 | 描述 |
|---|---|
| <.*> | 贪婪的重复:匹配“<python>perl>” |
| <.*?> | 非贪婪:匹配“<python>”,在“<python>perl>” |
| 示例 | 描述 |
|---|---|
| \D\d+ | 不分组:+重复\d |
| (\D\d)+ | 分组:+重复\D\d对 |
| ([Pp]ython(, )?)+ | 匹配“Python”,“Python, python, python”等。 |
再次匹配??先前匹配的组:
| 示例 | 描述 |
|---|---|
| ([Pp])ython&\1ails | 匹配python&pails或Python&Pails |
| ([‘"])[^\1]*\1 | 单或双引号字符串。 \1匹配第一组匹配。 \2匹配第二组匹配等等。 |
| 示例 | 描述 |
|---|---|
| python|perl | 匹配"python" 或 "perl" |
| rub(y|le)) | 匹配 "ruby" 或 "ruble" |
| Python(!+|\?) | “Python”后跟一个或多个!或者一个? |
需要指定匹配位置
| 示例 | 描述 |
|---|---|
| ^Python | 匹配“Python”在一个字符串或内部行的开始 |
| Python$ | 匹配“巨蟒”的字符串或行尾 |
| \APython | 匹配“Python”在字符串的开始 |
| Python\Z | 匹配“Python”在字符串的结尾 |
| \bPython\b | 匹配“Python”在字边界 |
| \brub\B | \B非单词的边界:匹配“rub”,“rube”和“ruby”,但并不单独 |
| Python(?=!) | 匹配“Python”,如果后面的感叹号 |
| Python(?!!) | 匹配“Python”,如果后面不是感叹号 |
| 示例 | 描述 |
|---|---|
| R(?#comment) | 符合“R”。其余全是注释 |
| R(?i)uby | 当匹配“uby”时,不区分大小写 |
| R(?i:uby) | 与上述相同 |
| rub(?:y|le)) | 只有组,而无需创建\1反向引用 |
标签:io 使用 sp on bs amp as nbsp python
原文地址:http://www.cnblogs.com/wakey/p/4168269.html