python正則表達式(2)--編譯正則表達式re.compile


 編譯正則表達式-- re.compile

使用re的一般步驟是先將正則表達式的字符串形 式編譯為pattern實例,然后使用pattern實例處理文本並獲取匹配結果(一個Match實例(值為True)),最后使用Match實例獲取信息,進行其他的操作。

可以把那些經常使用的正則表達式編譯成正則表達式對象,可以提高程序的執行速度。一處編譯,多出復用

re.compile(pattern, flags=0)

第二個參數flag是匹配模式,取值可以使用按位或運算符“|”表示同時生效,

比如re.I | re.M。當然你也可 以在regex字符串中指定模式。

以下兩種寫法等價:

re.compile('pattern', re.I | re.M)

re.compile('(?im)pattern')

 

pattern對象屬性及方法

Pattern對象是一個編譯好的正則表達式,也就是通過re.compile()函數編譯后得到結果。

通過pattern提供的一系列方法可以對文本進行匹配查找

pattern提供了幾個可讀屬性及方法用於處理正則表達式

(1)flags屬性

通過pattern.flags我們可以查看編譯時的選項,該屬性表示獲取編譯時用的匹配模式,以數字形式返回

例:

pattern = re.compile(r'\w+', re.DOTALL)

print pattern.flags

>>>16

通過上面的例子可以看到,flags返回結果既不是re.S也不是re.DOTALL,而是一個數值16。

其實re.S是一個整數,16就是它的值。re.S 、 re.DOTALL 、 16 三者等價,如果是I,則顯示數值為2。

 

編譯正則表達式時,也可以使用數字指定匹配模式

例:

re.compile(r'\w+', 16)

(2)groups屬性

該屬性表示獲取表達式中分組的數量。

例:

pattern = re.compile(r'(\w+)(\d)',re.I)

print pattern.groups

>>>2

(3)groupindex屬性

以表達式中有別名的組的別名為鍵、以該組對應的編號為值的字典,沒有別名的組不包含在內

p = re.compile(r'(\w+)(?P<sign>.*)', re.DOTALL)

print p.groupindex

>>>{'sign': 2}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM