可以说,您已经整理了电子邮件地址的编写方式,并且您有一个包含数千个电子邮件地址的列表,这些地址可能有效也可能无效。因此,要检查所有这些电子邮件地址的有效性,而不是一个一个地检查它们,如果有一定的 图案 这可以验证该电子邮件地址的有效性。正则表达式是一种编码这种模式的方法。
一个正则表达式 是一种特殊的字符序列,有助于在不同类型的数据上匹配字符串或字符串集或特定模式。正则表达式用于搜索引擎、文字处理器和文本编辑器的搜索和替换对话框、模式匹配、网络抓取、数据提取等等。
在 python 中,正则表达式模块可以通过导入模块来使用:
正则表达式需要编译成Pattern对象,以便进一步实现搜索等各种操作。 模式匹配 ,或执行字符串替换。
re.compile(模式,标志)
在输出中,我们可以看到该模式有一个标志为 re.UNICODE 这是一个默认标签。它表明传递的文本或模式被视为 UNICODE。与 ASCII 相比,UNICODE 支持大量字符。还有许多其他标志可用于各种功能。例如,re.I ( 或忽略大小写 ) 标志可用于忽略正则表达式模式中的字母大小写。
在这里,因为我们使用了标志 re.I ,我们已指示程序 忽视 这 信箱 .因此该模式将匹配所有字母大小写。
由于我们已经创建了一个模式对象,可以对其进行各种匹配操作。用于执行匹配的不同方法是:
在这里,因为我们使用了标志 re.I ,我们已指示程序 忽视 这 信箱 .因此该模式将匹配所有字母大小写。
回覆。 匹配()
如果字符串开头的零个或多个字符与 RE 匹配,则返回 匹配对象 .
在多行模式下,它也只匹配字符串的开头,而不是每行的开头。
如果字符串与模式不匹配,则返回 None。
回覆。 搜索()
扫描通过 细绳 寻找 RE 的第一个位置 图案 产生匹配。它用于在任何地方定位匹配 细绳 .
回覆。 找到所有()
返回所有不重叠的匹配项 图案 在 细绳 , 作为字符串或元组的列表。正如我们所见 寻找 是一个字符串列表。
回覆。 分裂()
返回所有非重叠匹配 图案 在 细绳 作为一个 迭代器。 我们可以看到输出中 match_i 的类型是 callable_iterator .
现在,让我们举个例子:
在这里,模式是 $1,我们可以清楚地看到正在执行搜索操作的文本中包含 $1。
但为什么输出是“无”?
它与称为元字符的东西有关。找不到 $1 的原因是因为符号 '$' 是 元字符 在正则表达式中使用。
元字符被认为是正则表达式的构建块。正则表达式是用于匹配字符串中的字符组合的模式。元字符在查找模式方面具有特殊意义,主要用于定义搜索条件和任何文本操作。
那么这是否意味着我们不能使用 $ 符号?
答案是,我们可以使用它!但是为此我们需要使用另一个元字符''(反斜杠)来转义元字符。
在这里,我们在模式中使用了反斜杠,以明确我们想要转义 $ 元字符并将其用作简单字符或文字字符。
现在让我们再举一个例子,
正如我们发现的那样,使用反斜杠我们可以转义元字符。但在某些情况下,它可能不会像我们想象的那样工作。
我们知道转义字符。一些最常用的转义字符是 \n(换行符)、\t(制表符)、'(单引号)、\\(反斜杠)等。我们在编写 Windows 目录地址等内容时使用反斜杠在 Python 中,我们需要使用两个反斜杠。
(\t 添加制表符空间,\n 给出新行。)
为了按预期打印字符串,我们需要使用 '\' 两个连续的反斜杠。
(在双反斜杠 \\ 中,第一个转义第二个以暗示实际的反斜杠。)
还有另一种方式。我们可以使用原始字符串,而不是使用双反斜杠。
Python 原始字符串是通过在字符串文字前加上 'r' 来创建的。它将反斜杠 (\) 视为文字字符。
让我们看看这个例子,
变量“addrs”用原始字符串初始化。在模式中使用四个反斜杠的目的是让解释器首先将其解释为两个反斜杠,然后在这两个反斜杠中,一个反斜杠有助于转义另一个反斜杠。
除了使用四个反斜杠,我们还可以使用原始字符串并使用两个反斜杠。
模式 = re.compile(r"C:\\Sect")
这里使用两个反斜杠是为了将反斜杠用作正则表达式中的文字。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/30284/22161208