如何使用 Python 原始字符串

介绍

在Python中,您可以通过在字符串文字前加上rR来创建原始字符串。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