2025年常用正则表达式—邮箱

常用正则表达式—邮箱邮箱的规则是 名称 域名 邮箱名称的规则 由英文字母 数字 下划线组成 邮箱域名的规则 由英文字母 数字 下划线 组成 一般常见的域名都是一级域名 例如 还有很多其他的多级域名 例如

大家好,我是讯享网,很高兴认识大家。

邮箱的规则是:名称@域名。

邮箱名称的规则:由英文字母、数字、下划线组成。

邮箱域名的规则:由英文字母、数字、下划线、"."组成。一般常见的域名都是一级域名,例如,还有很多其他的多级域名,例如

名称:\w+(解析:\w表示字母、数字、下划线,+表示1个或者多个)

域名: \w+(\.\w+)+

解析域名:


讯享网

  1. 第一个\w+表示紧跟@后面的字符;
  2. (\.\w+)+:\.表示只可以匹配.     (\.\w+)只可以匹配一级域名,后面加上+可以匹配一级或者多级域名(PS:也可以使用(\.\w+){1,})表示匹配一级或者多级域名

邮箱的正则表达式:\w+@\w+(\.\w+)+

  • 邮箱在列表里面进行正则匹配

import re
s=["","","y@.com"]
pattern = re.compile(r"\w+@\w+(\.\w+)+")
print(type(pattern))
list1 = []
for i in s:
    object1 = pattern.search(i)
    if object1:
        list1.append(object1.group())
    else:
        print("%s不是正确的邮箱格式"  %i)   
print("list1=",list1)
#执行结果:
<class '_sre.SRE_Pattern'>
y@.com不是正确的邮箱格式
list1= ['', '']

  • 邮箱在文件里面进行正则匹配

import re
list2 = []
pattern = re.compile(r"\w+@\w+(\.\w+)+")
with open("E:\\Python_Question\\file.txt") as file_obj:
    for line in file_obj:
        object2 = pattern.search(line)
        if object2:
            list2.append(object2.group())
        else:
            print("%s里面的邮箱格式不正确"  %line)            
print("list2=",list2)
#执行结果:
第三行的内容:y@.com里面的邮箱格式不正确
list2= ['', '']        
#file.txt的内容如下:
第一行的内容:
第二行的内容:
第三行的内容:y@.com

PS:邮箱的表达式没有使用开头^和结尾$符合,如果写成^\w+@\w+(\.\w+)+$,在文件里面就匹配不了邮箱,因为^要求每一行内容的开头要满足邮件,file.txt文件里的开头不满足开头要求

 

小讯
上一篇 2025-03-19 17:58
下一篇 2025-03-15 08:50

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/56077.html