原文: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 = '[email protected] [email protected] [email protected] [email protected] [email protected]'
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