Re模塊支持強(qiáng)大而且更通用的Perl風(fēng)格的正則表達(dá)式,該模塊允許多個(gè)線程共享同一個(gè)已編譯的正則表達(dá)式對(duì)象。
在模式匹配發(fā)生之前,正則表達(dá)式模式必須編譯成正則表達(dá)式對(duì)象叽讳。由于正則表達(dá)式在執(zhí)行過(guò)程中將進(jìn)行多次比較操作,因此強(qiáng)烈建議使用預(yù)編譯。而且岛蚤,既然正則表達(dá)式的編譯是必需的邑狸,那么使用預(yù)編譯來(lái)提升執(zhí)行性能無(wú)疑是明智之舉。 re.compile()能夠提供此功能灭美。其實(shí)模塊函數(shù)會(huì)對(duì)已編譯的對(duì)象進(jìn)行緩存推溃,所以不是所有使用相同正則表達(dá)式模式的 search()和 match()都需要編譯昂利。即使這樣届腐,你也節(jié)省了緩存查詢時(shí)間,并且不必對(duì)于相同的字符串反復(fù)進(jìn)行函數(shù)調(diào)用蜂奸。
>>> m = re.match('foo', 'foo') # 模式匹配字符串
>>> if m is not None: # 如果匹配成功犁苏,就輸出匹配內(nèi)容
... m.group()
...
'foo