Python 正則表示式中的原始字串表示法是什麼?
簡介
一個 正則表示式 是一個經常縮寫為 regex 的詞語。Regex 是一組指定搜尋模式的字元,主要用於文字處理器和搜尋引擎中執行查詢和替換操作。
當 Python 中的字串 以字母 r 或 R 為字首,如 r'...' 和 R'...', 它就變成了一個原始字串。與普通字串相比,原始字串將反斜槓 (\) 視為字面字元。在處理包含大量反斜槓的字串時,例如正則表示式或 Windows 上的目錄路徑,原始字串非常有用。
此字串不是使用標準的 Python 字串表示法 "n" 生成的。相反,生成一個包含換行符的一個字元的字串——Python 2.4.1 的文件。根據字串文字,反斜槓 (\) 字元用於轉義否則具有特殊意義的字元,例如換行符、反斜槓字元或引號字元。
使用的語法
對於正則表示式模式,答案是使用 Python 的原始字串表示法;在以 "r" 為字首的字串文字中,反斜槓不會被區別對待。
因此,r"\n" 是一個由字元 "" 和 "n" 組成的兩個字元的字串,而 "\n" 是一個由字元 "n" 組成的單個字元的字串。
s = r'lang\tver\nPython\t3'
演算法
- 匯入 re 函式
- 初始化一個字串。
- 使用元字元 r 或 R 來使用原始字串表示法。
- 列印字串並獲取完整的字串,而無需轉義任何字元。
理解 Python 原始字串
示例 1
import re s = r"Hello\tfrom TutorialsPoint\nHi" print(s)
輸出
Hello\tfrom TutorialsPoint\nHi
程式碼解釋
為了理解原始字串的確切含義,讓我們考慮以下字串,其中包含序列“\n”。
str = "Hello\tfrom TutorialsPoint\nHi" print(str)
由於 s 是一個文字正則字串,因此序列 "\t" 和 "\n" 將被視為跳脫字元。因此,如果我們列印字串,將生成必要的轉義序列(製表符和換行符)。
Hello from TutorialsPoint Hi
如果我們想將 s 設為原始字串會發生什麼?
# str is now a raw string # Here, both backslashes will NOT be escaped. str = r"Hello\tfrom TutorialsPoint\nHi" print(str)
這裡,兩個反斜槓都不會被視為跳脫字元,因此 Python 不會打印製表符和換行符。
相反,它將按字面意思列印“\t”和“\n”。
Hello\tfrom TutorialsPoint\nHi
如您所見,由於沒有字元被轉義,因此輸出與輸入相同!
當 Python 字串不起作用時。
示例 2
import re s =r"Hello\xfrom TutorialsPoint" print(s)
輸出
Hello\xfrom TutorialsPoint
改用此方法
import re str = r"Hello\xfrom TutorialsPoint" print(str)
輸出
Hello\xfrom TutorialsPoint
程式碼解釋
因此,我們甚至無法將其包含在字串文字中。現在,我們該怎麼辦?
在這種情況下,原始字串很有用。
透過將值視為一個簡單的原始字串文字,我們可以快速將其傳遞到一個變數中!
str = r"Hello\xfrom TutorialsPoint" print(str)
現在問題已解決,我們可以將此未處理的文字按字面意思作為普通物件傳遞!
Hello\xfrom TutorialsPoint
結論
Python 原始字串是以 "r" 或 "R" 為字首的字串文字。例如,r"Hello" 是一個原始字串。原始字串不會將反斜槓 ("") 視為轉義序列的一部分。因此它將正常列印。此功能可以幫助我們傳遞無法使用普通方法解碼的字串文字,例如序列 "\x"。原始字串將反斜槓視為字面字元。為了表示特殊字元(如製表符和換行符),Python 使用反斜槓 (\) 來表示轉義序列的開始