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 使用反斜槓 (\) 來表示轉義序列的開始。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP