Python正则表达式从匹配QQ邮箱到掌握核心语法实战教程

 更新时间:2026年06月08日 08:40:52   作者:盼哥PyAI实验室  
在Python中我们可以使用正则表达式来验证一个字符串是否符合邮箱的格式,这篇文章主要介绍了Python正则表达式从匹配QQ邮箱到掌握核心语法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、项目简介

今晚,我完成了一个小而实用的 Python 项目——

👉 通过正则表达式验证 QQ 邮箱与手机号的合法性。

这个练习让我体会到:

正则不是死记硬背的符号,而是一种能精准“描述规则”的语言。

在这篇文章中,我不仅分享实战代码,还整理出最核心的正则语法表格,帮助你从理解到应用一次吃透。

二、项目目标与思路

实现以下两个输入验证:

1️⃣ 检查输入的 QQ 邮箱 是否正确(如 1234567@qq.com

2️⃣ 检查输入的 手机号 是否为合法的 11 位号码(以 1 开头,第二位 3~9)

程序逻辑如下:

  • 用户输入 → 匹配正则 → 判断结果 → 提示重新输入或通过

三、完整代码实现

import re

# 输入 QQ 邮箱
qq_number = input("请输入qq号码: ")
# 输入手机号
phon_number = input("请输入手机号: ")

# 验证 QQ 邮箱格式
if re.findall(r'^[1-9]\d{4,10}@qq.com$', qq_number) == []:
    print("❌ qq邮箱号码不正确,请重新输入")
else:
    print("✅ 正确,你的qq邮箱号码是正确的!")

# 验证手机号格式
if re.findall(r'^1[3-9]\d{9}$', phon_number) == []:
    print("❌ 你的手机号不符合要求")
else:
    print("✅ 正确,你的手机号是正确的!")

四、运行效果

📸 实际运行结果如下:

请输入qq号码: 015247@qq.com
请输入手机号: 12379363796
qq邮箱号码不正确,请重新输入
你的手机号不符合要求

五、正则表达式知识拓展 

为了理解这段代码,我们需要拆解每个“元字符”的含义。
正则中的元字符就像“语法词汇”,决定了匹配的精准度。

单词符匹配

字符描述
.匹配任意一个字符(除了\n
[]匹配中列举的任意字符
\d匹配数字,等价于 [0-9]
\D匹配非数字
\s匹配空白字符(空格、Tab)
\S匹配非空白字符
\w匹配单词字符 [a-zA-Z0-9_]
\W匹配非单词字符

📘例如:
\d\d\d 匹配任意三位数字,如 123007
\w+ 匹配一个或多个字母数字组合。

表示数量的元字符

字符描述
{m}前一个字符出现 m次
{m,}前一个字符出现 至少m次
{m,n}前一个字符出现 m到n次之间

💡例子:
\d{4,10} 表示匹配 4 到 10 位数字。
所以在邮箱匹配中:
^[1-9]\d{4,10}@qq.com$ 表示 非0开头的5~11位QQ号邮箱

表示边界的元字符

字符描述
^匹配字符串的开头
$匹配字符串的结尾

✏️比如:
^1[3-9]\d{9}$
表示手机号必须 以1开头总长11位,且结尾处必须是数字
这就是为什么输入 1123456789(10位)会被识别为错误。

分组与逻辑匹配

字符描述
``匹配左右任意一个表达式
()进行分组匹配或提取匹配内容

例如:
(abc|xyz) 表示匹配 “abc” 或 “xyz”。
(1[3-9]\d{9}) 可以提取出手机号本体。

六、深入理解实战中的正则

目标使用的正则含义解析
QQ邮箱^[1-9]\d{4,10}@qq.com$以1-9开头,后接4~10位数字,以@qq.com结尾
手机号^1[3-9]\d{9}$以1开头,第二位为3~9,总长11位数字

✅ 如果输入 12345@qq.com 会匹配成功;
❌ 如果输入 02345@qq.com 会失败,因为0不能开头。

七、学习心得与总结

🔥通过这次正则表达式实战,我最大的感受是:

“正则不是记住语法,而是能看懂文字背后的规律。”

写正则的过程,其实就是把“脑子里的规则”翻译成“机器能读懂的逻辑”。

💬从初学阶段到今天,我总结出三条经验:
1️⃣ 用示例验证每条正则,别光看书。
2️⃣ 多拆别人的正则表达式,从理解开始。
3️⃣ 记得加注释!未来自己也能看懂。

八、延伸练习建议

如果你想进一步练手,可以试着:

  • 匹配邮箱类型不限的正则(如 @163.com, @gmail.com 等)
  • 验证身份证号、日期格式、IP 地址
  • 在网页爬虫中提取内容(如手机号、邮箱)

结语

正则表达式像一把“文本的手术刀”,

掌握之后,你就能快速筛选、提取、清洗各种数据。

到此这篇关于Python正则表达式从匹配QQ邮箱到掌握核心语法实战教程的文章就介绍到这了,更多相关Python正则表达式匹配QQ邮箱内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python sqlparse 解析库的基础使用过程解析

    Python sqlparse 解析库的基础使用过程解析

    sqlparse 是一个 Python 库,是一个用于 Python 的非验证 SQL 解析器, 用于解析 SQL 语句并提供一个简单的 API 来访问解析后的 SQL 结构,这篇文章主要介绍了Python sqlparse 解析库的基础使用,需要的朋友可以参考下
    2024-08-08
  • Python使用scipy模块实现一维卷积运算示例

    Python使用scipy模块实现一维卷积运算示例

    这篇文章主要介绍了Python使用scipy模块实现一维卷积运算,结合实例形式分析了scipy模块的功能及使用scipy模块进行一维卷积运算的相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • Python流程控制之pass语句的作用与使用场景详解

    Python流程控制之pass语句的作用与使用场景详解

    pass是Python中的空操作语句,主要用于语法完整性,本文将带大家深入理解pass语句的作用与使用场景的核心概念与实践方法,掌握关键技术要点,了解实际应用场景与最佳实践
    2026-05-05
  • 基于Python编写一个点名器的示例代码

    基于Python编写一个点名器的示例代码

    想起小学的时候老师想点名找小伙伴回答问题的时候,老师竟斥巨资买了个点名器。今日无聊便敲了敲小时候老师斥巨资买的点名器,希望对大家有帮助
    2022-07-07
  • python Tkinter实时显示数据功能实现

    python Tkinter实时显示数据功能实现

    这篇文章主要介绍了python Tkinter实时显示数据功能实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • python使用nibabel和sitk读取保存nii.gz文件实例

    python使用nibabel和sitk读取保存nii.gz文件实例

    这篇文章主要介绍了python使用nibabel和sitk读取保存nii.gz文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python列表创建、操作、删除与遍历的全方位解析

    Python列表创建、操作、删除与遍历的全方位解析

    Python列表是编程中的基础数据结构,用于存储有序元素集合,列表中的元素可以是不同类型,增强了数据处理的灵活性,本文详细介绍了列表的常用操作,如查找元素索引、插入、删除、遍历等,需要的朋友可以参考下
    2024-11-11
  • 深入解析Python中的集合类型操作符

    深入解析Python中的集合类型操作符

    这篇文章主要介绍了深入解析Python中的集合类型操作符,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础讲解

    Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础讲解

    Python 中提供了对时间日期的多种多样的处理方式,主要是在 time 和 datetime 这两个模块里,这篇文章主要介绍了Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础,需要的朋友可以参考下
    2023-03-03
  • Python操作MongoDB数据库PyMongo库使用方法

    Python操作MongoDB数据库PyMongo库使用方法

    这篇文章主要介绍了Python操作MongoDB数据库PyMongo库使用方法,本文讲解了创建连接、连接数据库、连接聚集、查看全部聚集名称、查看聚集的一条记录等操作方法,需要的朋友可以参考下
    2015-04-04

最新评论