Python 正则表达式中的原始字符串表示法是什么?
简介
一个正则表达式 通常简写为 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 使用反斜杠 (\) 来表示转义序列的开始。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP