原文來自FishC,本文是個人學習筆記。
模塊級別的函數
使用正則表達式也並非一定要創建模式對象,然後調用它的匹配方法。re模塊中同時還提供了一些全局函數,如match,search,findall,sub等。這些函數的第一個參數是正則表達式字符串,其它參數同與同名的方法一樣,返回值也一樣。
如果正則表達式的使用頻率比較高,建議使用上一回中所說的模式對象,如果只是偶爾使用,就使用全局函數就行了。
編譯標誌
(感覺怎麼這麼複雜啊)編譯標誌可以讓我們修正正則表達式的工作方式。在re模塊下,編譯標誌有兩個名字:完整名和簡寫。如下所示(前面是完整名,後面是簡寫):
ASCII,A 使得轉義符如\w,\b,\s,\d只能匹配ASCII字符,不匹配完整的Unicode字符;
DOTALL,S 使得.匹配任何字符,包括換行符;如不使用,將匹配除換行符外的所有字符;
IGNORECASE,I 匹配時候不區分大小寫的
LOCALE,L 支持當前的語言(區域)設置;使\w,\W,\b,\B依賴當前語言環境,而不是Unicode數據庫;
MULTILINE,M 多行匹配,影響^,$;通常^只匹配字符串的開頭,$匹配字符串的結尾;當此標誌被設置時,^不僅匹 配字符串的開頭,也匹配每行的開頭。同樣,$匹配字符串的結尾和行尾;
VERBOSE,X 啓用詳細的正則表達式:正則表達式可以寫得更好看,更有條理;空格會被忽略(除出現在字符類中和 使用反斜槓轉義的空格);容許正則表達式中使用註釋。