標誌

對於某些特殊情況,我們需要更改正規表示式的行為,這是使用標誌完成的。標誌可以通過 flags 關鍵字或直接在表示式中以兩種方式設定。

標誌關鍵字

下面是 re.search 的示例,但它適用於 re 模組中的大多數功能。

m = re.search("b", "ABC")  
m is None
# Out: True

m = re.search("b", "ABC", flags=re.IGNORECASE)
m.group()
# Out: 'B'

m = re.search("a.b", "A\nBC", flags=re.IGNORECASE) 
m is None
# Out: True

m = re.search("a.b", "A\nBC", flags=re.IGNORECASE|re.DOTALL) 
m.group()
# Out: 'A\nB'

常見的標誌

標誌 簡短的介紹
re.IGNORECASEre.I 使模式忽略大小寫
re.DOTALLre.S 使 . 匹配包括換行符在內的所有內容
re.MULTILINEre.M 使^匹配一行的開頭,$ 匹配一行的結尾
re.DEBUG 開啟除錯資訊

有關所有可用標誌的完整列表,請檢視文件

內聯標誌

來自文件

(?iLmsux)(來自’i’,‘L’,’m’,’s’,‘u’,‘x’的一個或多個字母。)

該組匹配空字串; 字母設定相應的標誌:re.I(忽略大小寫),re.L(依賴於語言環境),re.M(多行),re.S(點匹配所有),re.U(取決於 Unicode),以及 re.X(詳細),表示整個正規表示式。如果你希望將標誌包含在正規表示式的一部分中,而不是將標誌引數傳遞給 re.compile() 函式,這將非常有用。

請注意,(?x)標誌會更改表示式的解析方式。它應該首先在表示式字串中使用,或者在一個或多個空格字元之後使用。如果標誌前面有非空白字元,則結果未定義。