python正則表達(dá)式相關(guān)函數(shù)
import re
-
re.search(condition_str, source_str)
:正則匹配字符串中滿足條件的子字符串耘柱,返回布爾值猎物。
re.findall(condition_str, source_str)
:正則查找字符串中滿足條件的子字符串,返回所有子字符串(the output is a list that has a string as
the single element in the list)淮椰。
正則表達(dá)式 cheat sheet
.
:匹配任意字符
a..b
: 匹配所有axxb型
.+
萬(wàn)能牌(wild card):a.+b
匹配所有以a開(kāi)頭以b結(jié)尾的字符串
(a,b間非空)五慈。x+
匹配含有一個(gè)或更多x的字符串。(greedy)
+?
:+
的非greedy模式
.*
:廣譜萬(wàn)能牌:a.*b
匹配所有以a開(kāi)頭以b結(jié)尾的字符串(a,b間可以無(wú)其他字符)主穗。x*
匹配含有一個(gè)或更多x的字符串泻拦。(greedy)
*?
:*
的非greedy模式
(+與*都與左數(shù)第一個(gè)字符聯(lián)合)
*和+均為貪心匹配(greedy matching) :matches as many required characters as possible\s
: 匹配所有空格字符
\S
:匹配所有非空格字符\b
:匹配詞的開(kāi)始或結(jié)尾
\B
:匹配詞的非開(kāi)始結(jié)尾\d
:匹配所有數(shù)字,相當(dāng)于set[0-9]
\D
:匹配所有非數(shù)字忽媒,相當(dāng)于set[^0-9]
[]
:方括號(hào)(square bracket)內(nèi)字符為可接受匹配的字符
當(dāng)[]
中第一個(gè)字符為^
時(shí)争拐,括號(hào)內(nèi)容被反義。[^A-Za-z]
表示匹配除了A-Z和a-z的所有字符猾浦。
()
:圓括號(hào)(parentheses)內(nèi)字符為在匹配過(guò)程中被忽略的字符陆错。但與findall()
函數(shù)連用時(shí),雖然依舊用整個(gè)正則表達(dá)式查找金赦,但最終得到的返回值只有括號(hào)內(nèi)的部分塔鳍。轉(zhuǎn)義字符(escape characters) :
\
^
:匹配行初
$
:匹配行末
應(yīng)用實(shí)例
- 郵件地址
[a-zA-Z0-9]\S*@\S*[a-zA-Z0-9]
- 取出所有滿足
Details: http://source.saki.org/viewsvn/?view=rev&rev=39772
格式的url中的revision numbers
'^Details:.*rev=([0-9.]+)'