手记

Python里的正则表达式

一、正则表达式符号

符号                                  功能                                                   举例

字符串                                匹配字符串的值                                    foo

re1|re2                              匹配正则表达式re1或re2                       foo|bar

.                                        匹配任何字符(换行符除外)                     b.b

^                                      匹配字符串的开始                                 ^Dear(以Dear开头的字符串)

$                                       匹配字符串的结尾                                /bin/*sh (比配:/bin/bash、/bin/csh等)

*                                       匹配前面出现的正则表达式零次或 多次     [A-Zaz0-9]*

+                                      匹配前面出现的正则表达式一次或 多次     [a-z]+\.com

?                                       匹配前面出现正则表达式零次 或 一次       goo?

{N}                                   匹配前面出现的正则表达式N次               [0-9]{3}

{M,N}                                匹配重复出现M次 到 N次正则表达式       [0-9]{5,9}

[...]                                   匹配字符组里出现的任意一个字符           [aeiou]

[x-y]                                  匹配从字符x到y中的任意一个字符          [0-9],[A-Za-z]

[^...]                                 不匹配字符集中出现的任何一个字符        [^aeiou],[^A-Za-z0-9]

(...)                                   匹配封闭括号中正则表达式(RE),并保存为子组   ([0-9]{3})?,f(00|u)bar

\d                                      匹配任何数字,和[0-9]一样(\D是\d的反义:任何非数字)         data\d+.text

\w                                     匹配任何数字字母字符,和[A-Za-z0-9]相同                          [A-Zq-z_]\w+

\s                                      匹配任何空白符号                                                             of\sthe

\b                                      匹配单词边界                                                                  \bThe\b

\c                                      匹配特殊字符                                                                  \.,\\,\*

\A(\Z)                               匹配字符串的起始(结束)                                                  \ADear

二、正则表达式匹配举例


正则表达式模式       匹配的字符串 

at|home               at,home
r2d2|c3po            r2d2,c3po
f.o                       fao,f9o等
..                         aa,bb,ab等任意两个字符
\.doc                    .doc
^From                 匹配任何以From开始的字符串
/bin/tcsh$            匹配以/bin/tcsh结束的字符串
^Subject:hi$        匹配仅由Subject:hi组成字符串
the                      任何包含"the"字符串
\bthe                   任何以"the"开始的字符串
\bthe\b                仅匹配单词"the"
\Bthe                   任意包含"the"但不以"the"开头的单词
b[aeiu]t                bat, bet, bit, but

[cr][23][dp][o2]     一个包含 4 个字符的字符串: 第一个字符是“r”或“c”,后面是“2”或 “3”,再接下来是 “d” 或 “p”,最后是 “o” 或 “2“ ,例 如:c2do, r3p2, r2d2, c3po, 等等。 

[r-u][env-y][us]     “r”“s,”“t” 或 “u” 中的任意一个字符,后面跟的是 “e,” “n,” “v,” “w,” “x,” 或 “y”中的任意一个字符,再后面 是字符“u” 或 “s”. 

[^aeiou]                                   一个非元音字符 

[^\t\n]               除 TAB 制表符和换行符以外的任意一个字符 
\w+@\w+\.com          简单的 XXX@YYY.com 格式的电子邮件地址 
  \d+(\.\d*)?                          浮点数 匹配:0.004,”“2.”“75.”
24人推荐
随时随地看视频
慕课网APP