re
模块包含对正则表达式的支持
先讲一些正则中的匹配规则
通配符 .
.
可以匹配任何字符(除了换行符\n
,在 DOTALL 模式中也能匹配换行符)。只能匹配一个字符
对特殊字符进行转义 \
如果想要匹配 'python.org'
可以使用 'python\\.org'
这边使用两个反斜线,一是通过解释器转义,二是通过re
模块转义,建议使用原始字符串,如r'python\.org'
字符集 []
字符集可以匹配它所包含的任意字符
例:[pj]ython
匹配 python
和 jython
例:[a-z]
匹配 a 到 z 所有字母(字符集只能匹配一个这样的字符)
例:[a-zA-Z0-9]
匹配任意大小写字母和数字(字符集只能匹配一个这样的字符)
反转字符集 [^]
例: [^abc]
匹配任何除了 a,b,c 之外的字符
选择符合和子模式 |
选择符:
例: 'python|perl'
匹配 python
或者 perl
子模式: 用圆括号括起来需要的部分称为子模式
例: 'p(yhon|erl)'
匹配 python
或者 perl
可选项和重复子模式 ?
可选项:在子模式的后边加上问好就变成了可选项。它可以出现在匹配字符串中,但并非是必须的。
例:r'(http://)?(www\.)?python\.org'
可以匹配到的下列字符串
'http://www.python.org'
'http://python.org'
'www.python.org'
'python.org'
重复子模式:允许子模式重复多次的运算符
-
(pattern)*
允许模式重复0次或多次 -
(pattern)+
允许模式重复1次或多次 -
(pattern){m,n}
允许模式重复 m ~ n 次
例: r'w*\.python\.org'
可以匹配.python.org
、w.python.org
、wwwww.python.org
等等等等。
字符串的开始和结尾 ^``$
只匹配开始:
例: 只想在字符串的开头而不是其他位置匹配'ht+p'
,可以使用'^ht+p'
匹配,可以匹配到'http://python,org'
等等,而不会匹配'www.http.com'
.
只匹配结尾:
如果只想匹配字符串结尾,可以使用$