正则表达式匹配邮箱地址

原文:https://blog.csdn.net/zrr789/article/details/79918247

首先推荐两个学习正则表达式的网站
一、
https://regexper.com
这个网站是把正则表达式可视化,效果如图所示
这里写图片描述
二、
https://regexr.com/
这个网站是对正则表达式进行解释
界面如图所示:
这里写图片描述

好了进入正题

首先了解电子邮箱的格式:
常见的电子邮箱格式:

abc@163.com   abc@qq.com
 
 
  • 1

不太常见的电子邮箱格式,在@符号之前还有点.

zhangshna.Mr@163.com,abc_Wang.dd@sian.com,abc_Wang.dd.cc@sian.com
 
 
  • 1

所以匹配电子邮箱的正则表达式为:

[\w]+(\.[\w]+)*@[\w]+(\.[\w])+
 
 
  • 1

对该正则表达式的解释

[\w]+             匹配至少一个数字、字母、下划线的字符;
 
 
  • 1

(.[\w]+)*

总的意思是匹配0次或多次 点.+数字或字母或下划线
 *        表示 匹配0次或多次的前面的符号
 \.       匹配符号 .
 [\w]+    匹配至少一个数字、字母、下划线的字符;
 
 
  • 1
  • 2
  • 3
  • 4

@[\w]+(.[\w])+

@   匹配@
[\w]+  匹配至少一个数字、字母、下划线的字符;
(\.[\w])+  匹配至少一次  点.+数字或字母或下划线
 
 
  • 1
  • 2
  • 3

脚本代码

import re
str1 = 'fdg.123@163.com  hdfh.abc@qq.com  hidfsd@qq.com gfgfa@qq.com  bdfdg@163.com'
reg_str1 = r'([\w]+(\.[\w]+)*@[\w]+(\.[\w])+)'
mod = re.compile(reg_str1)

items = mod.findall(str1)
for item in items:
    print(item)
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

执行结果

这里写图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值