介绍
在Python中,您可以通过在字符串文字前加上r
或R
来创建原始字符串。Python原始字符串将反斜杠字符(\)视为字面字符。原始字符串在字符串需要包含反斜杠(例如用于正则表达式或Windows目录路径)并且您不希望它被视为转义字符时非常有用。本文介绍了Python原始字符串的基本工作原理,并提供了一些常见示例,展示如何使用原始字符串在字符串中包含特殊字符。
本文示例使用Python交互式控制台在命令行中演示不同的原始字符串场景。
使用原始字符串在字符串中包含换行符
此示例使用一个具有值的字符串:Hi\nHello
。如果您尝试将此值分配给普通字符串,那么换行符(\n
)会创建一个新行:
- s = 'Hi\nHello'
打印字符串:
- print(s)
输出为:
Hi
Hello
输出显示,换行符导致换行。
为了在字符串中包含换行符,请在字符串变量前加上r
或R
以创建原始字符串:
- raw_s = r'Hi\nHello'
打印字符串:
- print(raw_s)
输出为:
Hi\nHello
输出包含换行符。
在字符串中使用原始字符串包含双反斜杠字符
如果尝试在普通字符串中包含双反斜杠字符(例如用于主机路径),则第一个反斜杠字符不会打印,因为编译器将反斜杠视为转义指示符。
例如,创建一个包含路径的字符串:
- s = '\\examplehost\digitalocean\content\'
打印字符串:
- print(s)
输出为:
\examplehost\digitalocean\content\
输出显示第一个反斜杠字符未包含在字符串中。
为了在字符串中包含两个反斜杠字符,请在字符串变量前加上r
或R
以创建原始字符串:
- s = r'\\examplehost\digitalocean\content\'
打印字符串:
- print(s)
输出为:
\\examplehost\digitalocean\content\
输出包含两个反斜杠字符。
在原始字符串中排除引号和反斜杠字符的故障排除
在原始字符串中,引号仍然可以用单个反斜杠字符进行转义,但是反斜杠字符仍然存在于生成的原始字符串中。
此外,原始字符串不能以奇数个反斜杠字符结尾。由于这个特性,您无法创建包含单个反斜杠字符的原始字符串,因此r"/"
是一个无效的字符串。
无效的原始字符串示例
在这个例子中,由于反斜杠字符的转义,输出中缺少了结束引号,导致了未终止的字符串字面量
错误:
r'\'
在这个例子中,前两个反斜杠将互相转义,第三个将尝试转义结束引号,导致未终止的字符串字面量
错误:
r'ab\\\'
有效的原始字符串示例
这里有一些包含引号和反斜杠字符的有效原始字符串。
创建一个转义引号的原始字符串:
- s = r"\"\""
打印字符串:
- print(s)
输出为:
\"\"
输出显示反斜杠字符转义了引号,使字符串不会终止,但反斜杠字符仍然保留在结果字符串中。
创建一个具有偶数个反斜杠字符的原始字符串:
- s = R'ab\\'
打印字符串:
- print(s)
输出为:
ab\\
输出显示偶数个反斜杠字符包含在结果字符串中。
结论
在本文中,您学习了Python原始字符串的基础知识。继续学习有关Python字符串的知识。
Source:
https://www.digitalocean.com/community/tutorials/python-raw-string