re
模塊包含對正則表達(dá)式的支持
先講一些正則中的匹配規(guī)則
通配符 .
.
可以匹配任何字符(除了換行符\n
,在 DOTALL 模式中也能匹配換行符)瘦锹。只能匹配一個字符
對特殊字符進(jìn)行轉(zhuǎn)義 \
如果想要匹配 'python.org'
可以使用 'python\\.org'
這邊使用兩個反斜線,一是通過解釋器轉(zhuǎn)義残家,二是通過re
模塊轉(zhuǎn)義泣港,建議使用原始字符串,如r'python\.org'
字符集 []
字符集可以匹配它所包含的任意字符
例:[pj]ython
匹配 python
和 jython
例:[a-z]
匹配 a 到 z 所有字母(字符集只能匹配一個這樣的字符)
例:[a-zA-Z0-9]
匹配任意大小寫字母和數(shù)字(字符集只能匹配一個這樣的字符)
反轉(zhuǎn)字符集 [^]
例: [^abc]
匹配任何除了 a,b,c 之外的字符
選擇符合和子模式 |
選擇符:
例: 'python|perl'
匹配 python
或者 perl
子模式: 用圓括號括起來需要的部分稱為子模式
例: 'p(yhon|erl)'
匹配 python
或者 perl
可選項和重復(fù)子模式 ?
可選項:在子模式的后邊加上問好就變成了可選項历葛。它可以出現(xiàn)在匹配字符串中正塌,但并非是必須的。
例:r'(http://)?(www\.)?python\.org'
可以匹配到的下列字符串
'http://www.python.org'
'http://python.org'
'www.python.org'
'python.org'
重復(fù)子模式:允許子模式重復(fù)多次的運算符
-
(pattern)*
允許模式重復(fù)0次或多次 -
(pattern)+
允許模式重復(fù)1次或多次 -
(pattern){m,n}
允許模式重復(fù) m ~ n 次
例: r'w*\.python\.org'
可以匹配.python.org
恤溶、w.python.org
乓诽、wwwww.python.org
等等等等。
字符串的開始和結(jié)尾 ^``$
只匹配開始:
例: 只想在字符串的開頭而不是其他位置匹配'ht+p'
,可以使用'^ht+p'
匹配咒程,可以匹配到'http://python,org'
等等鸠天,而不會匹配'www.http.com'
.
只匹配結(jié)尾:
如果只想匹配字符串結(jié)尾,可以使用$