Python正则表达式中的原始字符串表示是什么?
更多Python相关文章,请阅读:Python 教程
简介
正则表达式通常被缩写为 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现在是一个原始字符串
# 这里,两个反斜杠不会被转义
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
使用以下方式代替
导入 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使用反斜杠(\)来表示转义序列的开始。