如何使用正则表达式在 Python 中验证电子邮件地址2024 年 8 月 29 日 | 4 分钟阅读 本教程将教我们如何使用正则表达式来验证给定的电子邮件地址。正则表达式是一种重要的文本搜索和替换技术,用于验证、字符串拆分以及许多其他操作。它们提供了一组规则来识别特定字符和数字,以便模式能够匹配我们正在寻找的特定文本片段。 正则表达式以模式匹配而闻名,各种编程语言都有不同的接口来表示它们以匹配结果。 让我们看看如何编写电子邮件验证的正则表达式。 通用电子邮件正则表达式没有一个正则表达式可以匹配所有可能的有效电子邮件地址。尽管如此,我们可以编写一个正则表达式来匹配大多数有效的电子邮件地址。首先,我们必须定义我们正在寻找的电子邮件地址格式。以下是最常见的电子邮件格式。 因此,我们可以注意到 @ 符号将前缀与域段分开的模式。用户名是包含大写和小写字母、数字和一些特殊字符的有效字符串。 域名是一个顶级域名,由 .(点)符号分隔。域名也可以包含大写、小写字母和 -(连字符)符号。顶级域名可以是 com、in、edu、co,或者至少有两个字符长。 正则表达式可能如下所示。 (string1)@(string2).(2+个字符) 上面的表达式准确地匹配了下面的电子邮件。 相同的正则表达式可能无法匹配以下类型的电子邮件地址。 根据正则表达式,字符串不应包含特殊字符。此外,顶级域名不能无效。我们可以将这些规则纳入具体的表达式中,该表达式考虑了比第一个表示法更多的案例。 我们不能在 @ 符号之前直接使用前缀,前缀也不能以它开头,因此我们确保在每个特殊字符之前至少有一个字母数字字符。顶级域名可以用点分隔。 这个正则表达式比第一个要复杂,但它覆盖了我们定义的正则表达式的所有规则。然而,它仍然可能在一些边缘情况下失败。 使用 Python 验证电子邮件地址Python 提供了 re 模块,其中包含用于在 Python 中表示和使用正则表达式的类和方法。我们将在 Python 脚本中使用此模块以及 re.fullmatch(pattern, string, flags)。仅当整个字符串与模式匹配时,此方法才返回匹配对象。如果不匹配,则返回 None。让我们了解下面的 Python 代码。 示例 - 输出 The given mail is valid The given mail is valid The given mail is invalid The given mail is invalid 解释 - 在上面的代码中,我们使用了 compile() 方法,它将正则表达式模式编译成一个 regex 对象。当我们尝试多次匹配模式时,通常出于效率原因使用它。然后我们定义一个函数,该函数使用 re.fullmatch() 方法,该方法以 regex 和 email 作为参数,如果给定的邮件完全匹配,它将返回匹配对象并打印消息。 健壮的电子邮件正则表达式之前,我们编写了一个在大多数情况下都有效的正则表达式,并且适用于合理的应用程序。但是,我们可以编写更健壮的正则表达式。长的表达式往往会变得复杂且难以阅读,这个表达式也不例外。 现在我们来编写健壮的电子邮件验证脚本。让我们了解下面的示例。 示例 - 输出 The given mail is valid The given mail is valid The given mail is invalid The given mail is invalid 结论本教程通过正则表达式包含了多种验证电子邮件的方法,主要取决于我们正在寻找的特定格式。关于这一点,没有一个唯一的模式适用于所有电子邮件格式;我们需要定义我们希望格式遵循的规则,并相应地构建模式。 每个新规则都会减小可接受地址的自由度。 下一主题bPython 入门 |
什么是位函数?应用于每个独立位而不是完整数字的函数称为位函数。我们可以将每个数字表示为二进制位,即 0 和 1。如果我们以二进制格式表示任何数字,我们可以应用...
阅读 3 分钟
我们将使用本教程创建一个终端版的 Wordle 克隆。自 Josh Wardle 于 2021 年 10 月首次发布以来,已有数百万人使用 Wordle。尽管原始游戏可以在线玩,但我们将为我们的版本创建一个命令行应用程序,并使用 Rich...
阅读 22 分钟
Python取证与虚拟化 | 哈希函数 在本教程中,我们将学习使用Python的取证科学、基本的Python取证应用程序、哈希函数、破解加密、可视化、命名约定、Dshell和Scapy、网络取证及其详细解释。简介 收集和保存证据对于网络安全至关重要。
14 分钟阅读
切比雪夫多项式是正交多项式家族,用于数学的各个分支,例如信号处理、数值分析和近似理论。切比雪夫多项式可用于使用切比雪夫级数近似函数。切比雪夫级数是切比雪夫多项式的集合...
阅读 3 分钟
这并非真正随机,而是用于生成伪随机值。这意味着这些随机值是可以预测的。在某些情况下,random() 方法会生成数字。此数量也称为种子值。语法 random.seed(i, version ) 参数:i:任何值,它是...
5 分钟阅读
数据可视化是机器学习中的一个关键阶段。要完全理解数据的行为和特征,您必须首先对其进行可视化。Python 提供了各种用于数据可视化的库。Turicreate 是 Python 提供的用于数据可视化的最佳库之一。TuriCreate 可以...
阅读 4 分钟
Python 中的可迭代对象是没有、一个或多个元素的 Python 对象。可迭代对象能够根据用户的需要返回其元素。由于此功能,我们可以使用 Python for 循环遍历可迭代对象。实际上,range() 方法...
阅读 4 分钟
随机指的是可以以任何顺序获得的数据或信息的集合。Python中的random模块用于生成随机字符串。随机字符串由数字、字符和标点符号系列组成,可以包含任何模式。随机...
5 分钟阅读
在从程序打印数据时,我们遇到了以标准格式打印数据集的问题。输出中打印的数据没有明确的格式,这使得数据看起来杂乱无章。此外,这也使我们难以查找特定...
阅读 13 分钟
在本教程中,我们将学习将 Python 列表或其他可迭代对象拆分为块的各种选项。迭代器方法:Python 中的迭代器是用于在可迭代对象(如列表、元组、字典和集合)上进行迭代的项目。迭代器对象使用...
阅读 8 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India