如何在 Python 中验证电子邮件地址(使用正则表达式)

2023-10-27

验证电子邮件地址是确保您的应用程序仅接受格式正确的电子邮件地址的关键步骤。格式正确的电子邮件地址不仅可以确保正确的通信,还有助于防止垃圾邮件和安全风险。在本文中,我们将探讨如何在 Python 中使用正则表达式 (regex) 验证电子邮件地址。我们将讨论正则表达式的基础知识,创建正则表达式模式来匹配电子邮件地址,并使用 re 模块实现 Python 函数来验证电子邮件地址。

1. 理解正则表达式

正则表达式是定义搜索模式的字符序列,主要用于字符串中的模式匹配。正则表达式可用于多种目的,例如验证输入数据、提取部分文本或在大型数据集中搜索特定模式。它们是一个强大的工具,可以简化复杂的字符串操作并使您的代码更加高效。

2. The rePython 中的模块

Python 的内置“re”模块提供对正则表达式的支持,使您可以有效地使用正则表达式模式。该模块包含如下功能match(), search(), findall(), finditer(), sub(), and split()执行各种正则表达式操作。要开始使用`re`模块,只需按如下方式导入即可:

1
import re

3. 创建用于电子邮件验证的正则表达式模式

典型的电子邮件地址由本地部分、“@” 符号和域部分。本地部分可能包含字母数字字符, periods, hyphens, and 下划线,而域名部分由域名和顶级域名 (TLD) 组成,并用句点分隔。要创建与有效电子邮件地址匹配的正则表达式模式,我们可以使用以下表达式:

1
电子邮件正则表达式 = r“(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)”

此模式可确保电子邮件地址:

  • 以字母数字字符、句点、连字符、下划线或加号开头。
  • 包含“@”符号。
  • 拥有由字母数字字符、连字符或句点组成的有效域名。
  • 以包含字母数字字符、连字符或句点的 TLD 结尾。

4. 实现邮箱验证功能:

现在我们有了正则表达式模式,我们可以创建一个使用 re 模块来验证电子邮件地址的 Python 函数。如果电子邮件地址与正则表达式模式匹配,该函数将返回 True,否则返回 False:

1
2
3
4
5
6
def 确认电邮(email):
    电子邮件正则表达式 = r“(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)”
    if re.match(电子邮件正则表达式, email):
        return True
    else:
        return False

5. 测试邮箱验证功能:

让我们使用一些示例电子邮件地址来测试我们的电子邮件验证功能,以检查其准确性。整个脚本如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import re
 
def 确认电邮(email):
    电子邮件正则表达式 = r“(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)”
    if re.match(电子邮件正则表达式, email):
        return True
    else:
        return False
 
emails = [
    “tec.admin@example.com”,
    “tec_admin@example.co.uk”,
    “tec.admin@example”,
    “失踪@tld”,
    “@example.com”,
]
 
for email in emails:
    print(f“{电子邮件}:{validate_email(电子邮件)}”)

输出应如下所示:


Output
tec.admin@example.com: True tec_admin@example.co.uk: True tec.admin@example: False missing@tld: False @example.com: False

正如您所看到的,该函数正确识别了有效和无效的电子邮件地址。

结论

在本文中,我们讨论了如何在 Python 中使用正则表达式验证电子邮件地址。我们介绍了正则表达式的基础知识,探索了 re 模块,创建了用于电子邮件验证的正则表达式模式,并实现了一个 Python 函数来验证电子邮件地址。此功能可以轻松集成到您的 Python 项目中,以确保正确的电子邮件地址格式并防止垃圾邮件或安全风险。请记住,此正则表达式模式可能无法涵盖所有​​边缘情况,您始终可以根据您的具体要求对其进行优化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中验证电子邮件地址(使用正则表达式) 的相关文章

  • Symfony2 - 将 Swiftmailer 添加为服务

    我想将我的电子邮件代码从我的控制器移至服务中 到目前为止我已完成以下操作 在 services yml 中创建条目 在 acme demobundle services EmailManager php 中创建了一个 EmailManage
  • 设置大型电子邮件通知系统有哪些方法?

    我的公司有一个用 PHP 构建的网站 我们使用内置的 PHP 电子邮件功能每天向订阅者发送数千封电子邮件 这是一个糟糕的主意 它堵塞了我们的服务器 并且需要几个小时才能完成整个批次 现在我已经研究过像 MailChimp 这样的群发邮件服务
  • 对一组复选框使用 HTML5“必需”属性?

    使用支持 HTML5 的较新浏览器 例如 FireFox 4 时 并且表单字段具有属性required required 并且表单字段为空 空白 然后点击提交按钮 浏览器检测到 必填 字段为空 并且不提交表单 相反 浏览器会显示一条提示 要
  • 如果元素隐藏则忽略 .NET 验证器(显示:无)

    我们经常在使用 javascript css 隐藏的元素 即 display none 上使用 NET 验证器时遇到问题 例如 可能有语法错误 但不用担心
  • Laravel 类邮件程序不存在

    我将应用程序从 5 更新到 5 2 现在 当我调用 Mail send 时 它会返回一个异常 Class mailer 不存在 Mail send emails mail data gt content function m use to
  • PHP 邮件结果错误:“标头丢失”

    我已经使用 php 邮件表单有一段时间了 现在它无法在新网站上运行 出现以下错误结果 PHP 警告 mail function mail sendmail from 未在 php ini 中设置 或第 16 行 E home mypagef
  • 如何在 CAST/CONVERT 之前检查 VARCHAR(n) 的 XML 格式是否正确

    我的公司有一个日志表 其中包含VARCHAR N 放置字符串的列 即supposed是 XML 但事实证明它并不总是格式良好的 为了对日志记录进行分析 以确定错误趋势等 我一直在使用LIKE陈述 然而 这非常慢 最近 我发现SQL Serv
  • 用于匹配某些数字的正则表达式

    以下正则表达式将匹配 9 11 位数字 d 9 11 编写完全匹配 9 的正则表达式的最佳方法是什么or11位数字 不包括10位 使用输入元素的模式属性 因此正则表达式应该匹配输入字段的整个值 我想接受任何包含 9 或 11 位数字的号码
  • Java特殊字符替换

    我有一段文字 Csukl si roham gy t rheti a sv deket annyit emlegetikmostans g ism t a sv d modellt Magyarorsz gon 在原始文本中根本没有换行符
  • 具有多个验证组的 Page_ClientValidate() - 如何同时显示多个摘要?

    ASP NET 2 0 假设我有两个验证组 valGrpOne 和 valGrpTwo 以及两个验证摘要 valSummOne 和 valSummTwo 分解部分的原因纯粹是为了美观 一个提交按钮会触发对两组的验证 现在我想触发客户端验证
  • 延迟 HTML5:无效伪类直到第一个事件发生

    我最近发现 invalid伪类适用于required页面加载后立即生成表单元素 例如 如果您有以下代码
  • 检测 JTextField“取消选择”事件

    有没有某种方法可以检测 JTextField 是否被取消选择 即该字段已被选择 但现在您选择了其他内容 我想要这样做的原因是因为我想在用户尝试提交数据之前检查用户表单中是否有任何非法字符 如果有一些更简单的方法来做到这一点 而不是我试图解决
  • 如何使用 Twitter Bootstrap 弹出窗口进行 jQuery 验证通知?

    我可以使用弹出窗口出现引导程序 http twitter github com bootstrap很容易 我还可以使用标准进行验证jQuery 验证插件 http docs jquery com Plugins Validation or
  • 从 mysql 检索数据并通过电子邮件发送

    我有一个 php 页面 它显示 mysql 数据库中每个用户的课程表数据 如下所示 result mysql query sql echo table border 0 thead tr th Class Link th th Studen
  • codeigniter 动态表单输入名称的表单验证

    我有一个 codeigniter 应用程序 我的视图使用数据库行 ID 附加到输入名称以获取唯一 ID 这允许我在表单操作 即更新 中使用所有输入 我的视图语法 table tr th nbsp th th nbsp th th Custo
  • ckeditor 数据未通过 jQuery 验证进行验证

    我知道有很多关于此的问题 但我无法让它在我的一生中发挥作用 我尝试了几种解决方案 包括this http devlog waltercruz com usando ckeditor e jquery validate juntos 第二个答
  • 发送邮件时PEAR邮件验证失败

    由于我发现 PHP 中内置的邮件功能存在安全漏洞 因此我尝试使用 PEAR 我已经在本地主机 WAMP 服务器 2 2 上安装并进行了必要的配置 但是 每次我尝试发送电子邮件时 都会显示以下消息 error authentication f
  • 添加验证码到 Symfony2 登录

    我需要将验证码添加到我的登录页面 我正在使用 GregwarCaptchaBundle 和 FosUserBundle 目前我已经使用以下代码在登录时显示验证码
  • 如何简单地检查服务器PHP版本是否为5或以上?

    我正在为程序创建预安装清单 该程序需要 PHP5 因此我需要检查列表脚本来检查 PHP5 的可用性 有一个函数为phpversion 将以以下格式返回5 3 6或类似的 然而 我希望清单非常简单 只是告诉你是或否 所以显示当前版本对我没有多
  • Symfony2 无效形式且无错误

    我的 Symfony2 生成的 CRUD 表单有问题 与MongoDB文档 但我不认为这是相关的 在我的控制器的 createAction 方法中 当我调试表单结果时 form gt isValid returns false form g

随机推荐

  • python execute() 使用%s 拼接sql 避免sql注入攻击 好于.format

    1 execute 参数一 sql 语句 锁定当前查询结果行 cursor execute SELECT high low vol FROM table name WHERE symbol s FOR UPDATE symbol 2 for
  • 互联网程序员行话(黑话)合集

    一 招聘行话大全 能听懂证明你是历经磨难的老司机 刚开始投简历时 你总以为是这样的 其实大部分情况下是那样的 面试之后 HR让回去等消息 傻傻的等待 半个月以上没有回音 各种焦虑 明面上的意思就是实际意思的公司 貌似都是说的是别人的公司 下
  • 安全多方计算从入门到精通:MPC简介&JUGO平台

    简介 今天我们来介绍一下基于安全多方计算所设计出来的产品JUGO 从安全性角度来看 数据泄露 隐私安全问题严重 facebook的数据泄露事件闹得很大 原因就是facebook单方面将用户的个人数据提供给了第三方机构 这为个人数据的拥有权敲
  • Intel MediaSDK sample_decode 官方GPU解码流程学习(二) - 在双显卡机器上实现DirectX11 D3D11和OpenCL共享资源

    很久以前写过有关D3D11和OCL直接共享显存的代码 Intel MediaSDK sample decode 官方GPU解码流程学习 DirectX11 D3D11和OpenCL共享资源 这段代码一直运行的很好 被我用来做验证显卡驱动里的
  • [DB]数据库--lowdb

    DB 数据库 lowdb lowdb 基本应用 获取数据 数据变更 写入文件 lodash的使用 获取数据 lodash方法使用 数据变更 写入文件 lowdb lowdb 是一个基于文件存储的非关系型数据库 基于loadsh的轻量级数据库
  • Quaternion 学习与应用(转载)

    Quaternion 学习与应用 标签 四元数 unity3d quaternion 分类 Unity3D 今天准备学习和研究下unity3d的四元数 Quaternion 四元数在电脑图形学中用于表示物体的旋转 在unity中由x y z
  • 个人博客站点的搭建过程

    个人博客站点的搭建过程 技术选型 hexo vercel hexo介绍 官网 Hexo Hexo 是一个快速 简洁且高效的博客框架 Hexo 使用 Markdown 或其他渲染引擎 解析文章 在几秒内 即可利用靓丽的主题生成静态网页 ver
  • 【华为OD机试真题2023B卷 JAVA&JS】找最小数

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 找最小数 知识点贪心 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 给一个正整数NUM1 计算出新正整数NUM2 NUM2为NUM1中移除N位数字后的结果 需要使得NU
  • Qt自定义控件的实践——电池电量控件

    一 介绍 上一篇我们绘制了一个自定义的slider控件 现在我们再绘制一个电池控件 它可调节电池电量 二 步骤 新建Battery类 battery h ifndef BATTERY H define BATTERY H 1 可设置电池电量
  • 操作系统---第三章内存管理---虚拟内存管理---应用题

    1 2009年统考真题 我在这里犯的错误是没有考虑到执行完缺页中断后还要优先访问快表 快表找不到才去访问内存 2在一个请求分页存储管理系统中 一个作业的页面走向为4 3 2 1 4 3 5 4 3 2 1 5 当分配给作业的物理块数分别为3
  • VMware安装和新建linux虚拟机

    目录 VMware虚拟机安装以及Linux系统安装及环境配置 1 安装前配置 2 VMware虚拟机的安装 VMware workstation 16 3 新建虚拟机 4 安装操作系统 5 配置远程管理 VMware虚拟机安装以及Linux
  • ant 通配符

    我们常用的匹配模式有ANT模式 比如acegi可以用PATTERN TYPE APACHE ANT来使用ANT匹配模式 那什么是ANT匹配模式呢 ANT通配符有三种 通配符 说明 匹配任何单字符 匹配0或者任意数量的字符 匹配0或者更多的目
  • Android性能优化(一)之启动加速35%

    一 前言 随着项目版本的迭代 App的性能问题会逐渐暴露出来 而好的用户体验与性能表现紧密相关 从本篇文章开始 我将开启一个Android应用性能优化的专题 从理论到实战 从入门到深挖 手把手将性能优化实践到项目中 欢迎持续关注 那么第一篇
  • OpenGL(十)——基础光照

    目录 一 前言 二 环境光照 三 漫反射光照 3 1 法向量 3 2顶点着色器 3 3 VAO属性解释 3 4 片段着色器 四 镜面光照 4 1 片段着色器 一 前言 现实世界光照十分复杂 冯氏光照模型是对现实世界光照的抽象 主要由3部分组
  • CSAPP-数据表示与运算实验

    目录 一 实验目的 二 实验要求及注意事项 三 实验原理与内容 1 位操作 2 补码运算 3 浮点数操作 四 实验设备与软件环境 五 实验过程与结果 1 操作符及运算概览 1 位运算和逻辑运算 2 补码运算 3 浮点数 2 功能实现与结论
  • DB2的日期时间类型以及转换问题

    一 首先说一下日期时间类型的简介 日期时间型数据类型包括 DATE TIME 和 TIMESTAMP 日期时间值可在某些算术和字符串操作中使用 而且兼容某些字符串 但它们既不是字符串 也不是数字 DATE DATE 是一个由三部分组成的值
  • 【第47篇】BoT-SORT:强大的关联多行人跟踪

    摘要 论文连接 https arxiv org pdf 2206 14651 pdf 多对象跟踪 MOT 的目标是检测和跟踪场景中的所有对象 同时为每个对象保留一个唯一标识符 在本文中 我们提出了一种新的鲁棒的最先进的跟踪器 它可以结合运动
  • 第三十三章续:用1 x 2的多米诺骨牌填满M x N的矩形有多少种方案

    题目描述 用1 x 2的多米诺骨牌填满M x N的矩形有多少种方案 M lt 5 N lt 2 31 输出答案mod p的结果 矩阵乘法 include
  • 渗透测试岗面试题汇总

    有些是网上整理的渗透测试岗 试问题 有些 HW 试的题 已经收集好了 提供给 家 现在就是毕业季节 希望各位都能找到好 作 还有一部分是根据回忆总结的 部分问题可能描述的有些问题 安全的体系很大 这些只是冰山一角而已 感兴趣的同学可以点击我
  • 如何在 Python 中验证电子邮件地址(使用正则表达式)

    验证电子邮件地址是确保您的应用程序仅接受格式正确的电子邮件地址的关键步骤 格式正确的电子邮件地址不仅可以确保正确的通信 还有助于防止垃圾邮件和安全风险 在本文中 我们将探讨如何在 Python 中使用正则表达式 regex 验证电子邮件地址