Python 正则表达式中的原始字符串表示法是什么?

pythonserver side programmingprogramming更新于 2024/2/12 5:59:00

简介

正则表达式是一个经常缩写为 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 使用反斜杠(\)来表示转义序列的开始


相关文章