如何使用Python原始字串

介紹

您可以通過在字符串文字前加上rR來創建Python中的原始字符串。Python原始字符串將反斜杠字符(\)視為字面字符。當字符串需要包含反斜杠時,例如用於正則表達式或Windows目錄路徑時,您不希望它被視為轉義字符時,原始字符串非常有用。本文介紹了Python原始字符串的基本工作原理,並提供了一些常見示例,以示如何使用原始字符串來包含字符串中的特殊字符。

本文示例使用Python交互式控制台在命令行中演示不同的原始字符串場景。

使用原始字符串在字符串中包含換行符

此示例使用具有值的字符串:Hi\nHello。如果您試圖將此值分配給普通字符串,則換行符(\n)會創建一個新行:

  1. s = 'Hi\nHello'

打印字符串:

  1. print(s)

輸出是:

Hi
Hello

輸出顯示換行字符導致新行。

要在字符串中包含換行字符,請在字符串變量前加上 rR 以創建原始字符串:

  1. raw_s = r'Hi\nHello'

列印字符串:

  1. print(raw_s)

輸出為:

Hi\nHello

輸出包括換行字符。

使用原始字符串包含雙斜線字符

如果您試圖在普通字符串中包含雙斜線字符,例如主機名路徑,則第一個反斜線字符將不會被打印,因為編譯器將反斜線視為轉義指示符。

例如,創建包含路徑的字符串:

  1. s = '\\examplehost\digitalocean\content\'

列印字符串:

  1. print(s)

輸出為:

\examplehost\digitalocean\content\

輸出顯示第一個反斜線字符未包含在字符串中。

要在字符串中包含兩個反斜線字符,請在字符串變量前加上 rR 以創建原始字符串:

  1. s = r'\\examplehost\digitalocean\content\'

列印字符串:

  1. print(s)

輸出為:

\\examplehost\digitalocean\content\

輸出包括兩個反斜線字符。

故障排除引用和反斜杠字符在原始字符串中

在原始字符串中,引号仍然可以用单个反斜杠字符转义,但是反斜杠字符仍然保留在生成的原始字符串中。

此外,原始字符串不能以奇数个反斜杠字符结尾。由于这个特性,您无法创建包含单个反斜杠字符的原始字符串,所以r"/"是一个无效的字符串。

无效的原始字符串示例

在这个示例中,由于被反斜杠字符转义,输出中缺少结尾引号,导致未终止的字符串文字错误:

r'\'

在这个示例中,前两个反斜杠将互相转义,第三个将尝试转义结尾引号,导致未终止的字符串文字错误:

r'ab\\\'

有效的原始字符串示例

以下是包含引號和反斜杠字符的有效原始字符串示例。

創建一個轉義引號的原始字符串:

  1. s = r"\"\""

輸出字符串:

  1. print(s)

輸出如下:

\"\"

輸出顯示反斜杠字符轉義引號,使字符串不會終止,但反斜杠字符仍然保留在結果字符串中。

創建具有偶數個反斜杠字符的原始字符串:

  1. s = R'ab\\'

輸出字符串:

  1. print(s)

輸出如下:

ab\\

輸出顯示偶數個反斜杠字符包含在結果字符串中。

結論

在本文中,您學會了Python中原始字符串的基礎知識。繼續學習有關Python字符串的知識。

Source:
https://www.digitalocean.com/community/tutorials/python-raw-string