Python 中不區分大小寫的正規表示式
正規表示式匹配 Python 文字中的特定字串。他們形成一個搜尋模式並檢查該搜尋模式是否存在於文字中。
在本文中,我們將研究 Python 中不區分大小寫的正規表示式。進一步解釋了在文字中執行不區分大小寫搜尋的不同方法。
Python 中不區分大小寫的正規表示式
搜尋模式由一系列字元組成,可以使用正規表示式規則指定。但是,要使用正則 Python 表示式,你首先需要匯入 re
模組。
不區分大小寫意味著文字在小寫和大寫中應該被認為是相等的。我們需要在日常生活中經常應用不區分大小寫的搜尋。
一個這樣的例子是每當我們搜尋某種商品時,比如包
。有關包的資訊將顯示在螢幕上。
但是,如果我們以小寫字母搜尋 bag
或使用混合大小寫(例如 bAG
),它也應該顯示相同的結果。因此,我們需要將不同的大小寫字母視為相同,以便在特定場景下輕鬆搜尋結果。
因此,我們使用正規表示式來檢查文字中不區分大小寫的模式。
因此,讓我們討論如何使用正規表示式從文字中提取搜尋模式。
在 Python 中使用不區分大小寫的 re.IGNORECASE
標誌匹配字串
我們可以使用 Python 的 search()
、match()
或 sub()
函式來查詢我們的搜尋模式是否存在於文字中並提取它們的確切位置。
這些函式有三個引數:
- 要搜尋的
模式
。 - 要在其中搜尋模式的
文字
。 flag
。
然而,這個 flag
引數是一個可選引數,但用於啟用 Python 中的多個功能。
re.IGNORECASE
用作標誌以啟用文字中不區分大小寫的搜尋。它將認為字元 [A-Z]
與字串的 [a-z]
相同。
讓我們舉個例子,在我們的程式碼中使用 re.IGNORECASE
作為標誌。
import re
re.search("the", "ThE", re.IGNORECASE)
輸出:
<re.Match object; span=(0, 3), match='ThE'>
同樣,你可以在 match()
函式或 sub()
函式中將標誌作為 re.IGNORECASE
傳遞,以在文字中搜尋不區分大小寫的字串。
但是,如果要搜尋文字中出現的所有字串,則應使用 Python 的 re.findall()
函式。它將找到文字中存在的所有匹配字串。
但是,你必須在引數中傳遞標誌 re.IGNORECASE
才能在文字中查詢不區分大小寫的字串。
讓我們看看如何提取文字中出現的所有字串。
import re
re.findall("the", "The sources informed the police of tHe thieves.", re.IGNORECASE)
輸出:
['The', 'the', 'tHe']
上面使用的 re.IGNORECASE
標誌也可以寫成 re.I
。這個 re.I
標誌也用於在文字中搜尋不區分大小寫的模式。
讓我們用一個例子來看看。
import re
re.findall("the", "The sources informed the police of tHe thieves.", re.I)
輸出:
['The', 'the', 'tHe']
所有這些方法都存在於 Python 的 re
模組中。因此,re
模組必須在使用前匯入程式中。
在 Python 中使用不區分大小寫的標記 (?i)
匹配字串
當你不想在 search()
或任何其他函式中新增標誌引數以從文字中提取字串時,我們使用由 (?i)
表示的不區分大小寫的標記。
它應用於搜尋模式之前的正規表示式函式,而無需指定額外的標誌引數。
下面是在 search()
方法中使用不區分大小寫標記 (?i)
的程式碼。
import re
re.search("(?i)TABLE", table)
輸出:
<re.Match object; span=(0, 5), match='table'>
但是,你可以在更大的字串中搜尋模式,並使用 Python 中的 findall()
方法從字串中查詢所有多次出現的搜尋模式。
下面是在 Python 中通過 findall()
方法使用不區分大小寫標記 (?i)
的程式碼片段。
import re
text = "Let it rain, let it snow, let it do!"
re.findall("(?i)LEt", text)
輸出:
['Let', 'let', 'let']
因此,上面的程式碼片段輸出了文字中所有出現的搜尋模式。將符號 (?i)
放在搜尋模式之前。
まとめ
本文討論了正規表示式以及如何使用它們在文字中查詢不區分大小寫的搜尋模式。我們使用了兩種方式。
首先是 re.IGNORECASE
標誌,它作為引數傳遞給搜尋函式,例如 search()
、match()
、findall()
等。你也可以使用 re.IGNORECASE
標誌以使用你的字串搜尋不區分大小寫的模式。
但是,第二種方法使用不區分大小寫的標記 (?i)
,放置在搜尋函式中的搜尋模式之前。
我們可以使用這些方法在我們的文字中找到不區分大小寫的模式。