Python中的 re.compile 函數(shù)

以下介紹在python的re模塊中怎樣應(yīng)用正則表達(dá)式

1. 使用re.compile

re模塊中包含一個(gè)重要函數(shù)是compile(pattern [, flags]) ,該函數(shù)根據(jù)包含的正則表達(dá)式的字符串創(chuàng)建模式對(duì)象??梢詫?shí)現(xiàn)更有效率的匹配。在直接使用字符串表示的正則表達(dá)式進(jìn)行search,match和findall操作時(shí),python會(huì)將字符串轉(zhuǎn)換為正則表達(dá)式對(duì)象。而使用compile完成一次轉(zhuǎn)換之后,在每次使用模式的時(shí)候就不用重復(fù)轉(zhuǎn)換。當(dāng)然,使用re.compile()函數(shù)進(jìn)行轉(zhuǎn)換后,re.search(pattern, string)的調(diào)用方式就轉(zhuǎn)換為 pattern.search(string)的調(diào)用方式。
其中,后一種調(diào)用方式中,pattern是用compile創(chuàng)建的模式對(duì)象。如下:

>>> import re
>>> some_text = 'a,b,,,,c d'
>>> reObj = re.compile('[, ]+')
>>> reObj.split(some_text)
['a', 'b', 'c', 'd']

2.不使用re.compile

在進(jìn)行search,match等操作前不適用compile函數(shù),會(huì)導(dǎo)致重復(fù)使用模式時(shí),需要對(duì)模式進(jìn)行重復(fù)的轉(zhuǎn)換。降低匹配速度。而此種方法的調(diào)用方式,更為直觀。如下:

>>> import re
>>> some_text = 'a,b,,,,c d'
>>> re.split('[, ]+',some_text)
['a', 'b', 'c', 'd']
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 正則表達(dá)式功能十分強(qiáng)大。 “有些人面臨一個(gè)問題時(shí)會(huì)想:‘我知道,可以用正則表達(dá)式來解決這個(gè)問題?!谑乾F(xiàn)在他們就有...
    敲代碼的令狐蔥閱讀 27,851評(píng)論 1 7
  • Python中的正則表達(dá)式(re) import rere.match #從開始位置開始匹配,如果開頭沒有則無re...
    BigJeffWang閱讀 7,595評(píng)論 0 99
  • re模塊手冊(cè) 本模塊提供了和Perl里的正則表達(dá)式類似的功能,不關(guān)是正則表達(dá)式本身還是被搜索的字符串,都可以...
    喜歡吃栗子閱讀 4,198評(píng)論 0 13
  • #首先,python中的正則表達(dá)式大致分為以下幾部分: 元字符 模式 函數(shù) re 內(nèi)置對(duì)象用法 分組用法 環(huán)視用法...
    mapuboy閱讀 1,719評(píng)論 0 51
  • 這是我在簡(jiǎn)書的第98篇文章,聽說寫夠10萬字就能回家,加油^0^~ 中國(guó)古建筑的發(fā)展經(jīng)歷了穴居、巢居到地上造屋的過...
    流落人間的公主閱讀 136評(píng)論 0 0

友情鏈接更多精彩內(nèi)容