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

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

简介

正则表达式通常被缩写为regex。它是一组用来指定搜索模式的字符,并且主要用于文本处理器和搜索引擎执行查找和替换操作。

当Python中的字符串以字母r或R开头时,如r’…’和R’…’,它变成了一个原始字符串。与常规字符串不同,原始字符串将反斜杠(\)解释为字面字符。在处理包含大量反斜杠的字符串时,如正则表达式或Windows下的目录路径,原始字符串很有帮助。

这个字符串不是使用标准的Python字符串表示法”n”来生成的。相反,它是由包含换行符的单个字符字符串生成的。根据字符串字面值,反斜杠(\)字符用于转义本来具有特殊意义的字符,例如换行符、反斜杠字符或引号字符。

使用的语法

对于正则表达式模式,答案是使用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使用反斜杠(\)来表示转义序列的开始。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程