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 使用反斜槓 (\) 來表示轉義序列的開始

更新於: 2023-11-02

5K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告