如何在 Python 中验证电子邮箱地址

给定一个代表电子邮箱地址的字符串,我们的任务是判断它是否符合正确的格式。一个有效的电子邮箱通常包含用户名、@ 符号以及域名。

例如:

> 有效: [email protected], [email protected]

> 无效: myownsite.com, user@@gmail.com

下面我们将探讨在 Python 中检查电子邮箱是否有效的不同方法。

使用 email_validator

这种方法通过应用电子邮箱标准中定义的严格规则来验证邮箱。它会检查用户名、域名格式,以及域名部分是否有效。如果邮箱通过了验证,它会返回该邮箱的标准化(已清理)版本。

Python


CODEBLOCK_ac920391

输出结果

> Valid Email

原理解析:

  • validate_email(email): 验证邮箱的结构和域名,当邮箱有效时返回一个详细的结果对象。
  • res: 存储验证通过后的信息,例如标准化的邮箱格式。
  • print("Valid Email"): 仅在验证成功时运行;如果邮箱无效,validate_email() 本身会抛出错误。

使用 validators 包

这种方法利用内置的验证逻辑来检查邮箱是否符合有效的模式。它会自动检查用户名、@ 符号和域名格式,并相应返回 True 或 False。

Python


CODEBLOCK_9362f3fe

输出结果

> Valid Email

原理解析:

  • validators.email(email): 如果邮箱有效,则返回邮箱本身,否则返回 False。
  • if 条件判断: 用于将邮箱分类为有效或无效。

使用正则表达式 (re.fullmatch)

这种方法使用正则表达式模式来匹配整个电子邮箱字符串。它验证每一个部分,确保整个电子邮箱遵循允许的字符规则。

Python


CODEBLOCK_40f75dce

输出结果

Valid Email
Invalid Email

原理解析:

  • re.fullmatch(regex, email): 确保整个字符串完全匹配该模式。
  • [A-Za-z0-9._%+-]+ 表示用户名中允许的字符,@ 是强制分隔符,[A-Za-z0-9.-]+ 代表域名,而 \.[A-Za-z]{2,7} 则代表 .com、.org 这样的后缀。

使用 re.match

这种方法检查电子邮箱是否以有效的邮箱模式开头。它并不强制整个字符串都匹配,但从开头起依然会验证用户名、@ 和域名部分。

Python


CODEBLOCK_877a54b1

输出结果

Valid email.

原理解析:

  • re.match(): 仅从字符串的开头开始检查模式匹配。
  • valid: 如果找到匹配项,则存储匹配对象,否则为 None。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/28569.html
点赞
0.00 平均评分 (0% 分数) - 0