一,邮箱标准格式
之前做过一个项目,其中有一条需求是需要匹配邮箱,但数据来源来自全球各处,邮箱格式多种多样。当时搜索到了这么一份标准邮箱格式构成图(但很遗憾当时做的笔记忘了记录标准号):
二,正则
我自己根据上面的邮箱构成格式编写了一份正则:
rule = '^[-!#$%&\'*+/=?^_`{\|}~a-z0-9]+(?:.[-!#$%&\'*+/=?^_`{|}~a-z0-9]+)*@(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?.)+[a-z0-9](?:[-a-z0-9]*[a-z0-9])?$'
匹配方法:
import re
rule = '^[-!#$%&\'*+/=?^_`{\|}~a-z0-9]+(?:.[-!#$%&\'*+/=?^_`{|}~a-z0-9]+)*@(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?.)+[a-z0-9](?:[-a-z0-9]*[a-z0-9])?$'
test_email = 'a3487.67137@qq.com'
result = re.findall(rule, test_email)
print(result)