標誌
對於某些特殊情況,我們需要更改正規表示式的行為,這是使用標誌完成的。標誌可以通過 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.IGNORECASE ,re.I |
使模式忽略大小寫 |
re.DOTALL ,re.S |
使 . 匹配包括換行符在內的所有內容 |
re.MULTILINE ,re.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)標誌會更改表示式的解析方式。它應該首先在表示式字串中使用,或者在一個或多個空格字元之後使用。如果標誌前面有非空白字元,則結果未定義。