對於Python來說,學習正規就要學習模組re的使用方法。本文將展示一些大家都應該掌握的高階技巧。
編譯正規物件
re.compile函數根據一個模式字串和可選的標誌參數產生一個正規表示式物件。該物件擁有一系列方法用於正規表示式匹配和替換。用法上略有區別,舉個例子, 匹配一個字串可用如下方式:
如果使用compile,將變成:
為什麼要這麼用呢?其實就是為了提高正規匹配的速度,重複利用正規表示式物件。讓我們比較一下2種方式的效率:
可以看到第二種方式快很多。在實際的工作中你會發現越多的使用編譯好的正規表示式對象,效果就越好。
分組(group)
你可能已經看過對要匹配的內容進行分組的用法了:
通過對要匹配的對象添加括號,就可以精確的對應匹配的結果了。我們也可以進行嵌套的分組:
分組可以滿足需求,但是有時候可讀性很差,那可以對分組進行命名:
現在可讀性就非常高了。
字串匹配
學過sed的同學可能見過以下替換用法:
這個1表示前面正則匹配到的結果。上面的sed也就是為匹配到的結果加上中括號。
在re模組中也存在這樣的用法:
用命名分組也是可以的:
附近匹配(Look around)
re模組也支援附近匹配,看看例子就懂了: