Bootstrap

【最新】正则表达式:识别QQ号码,Email电子邮箱(163邮箱、QQ邮箱、谷歌邮箱、雅虎邮箱等等)

分析

电子邮箱

—个完整的Internet邮件地址由以下两个部分组成,格式如下:登录名@主机名.域名
例如:[email protected][email protected]
可以看出电子邮件中必须要有“@”,“.”以及字母
而登录名可以是:数字,字母,下划线(_),-;

QQ号码

QQ号码的识别:一般QQ号长度为5位到10位数字
直接识别5-10长度是数字,误判率超级大,随便一串数字都能识别
必须增加关键词来辅助判断例如:
QQ:123456;
QQ123456;
qq:123456;
q123456;等等

正则

电子邮箱
# 正则规则:匹配Email
re_email = "[^a-zA-Z0-9_.\/]{1}([\w-]+@[-\w]+\.[-\w.]+)[^a-zA-Z0-9_.\/]{0,1}"
email_lt = re.findall(re_email, self.body)
# 剔除部分不符合格式的邮箱
email_lt = [e for e in email_lt if e != '' and ".." not in e]
QQ号码
re_links = '[Qq]{1,2}[::]?[\s]*([1-9][0-9]{4,9})[^0-9]'
chat_number_lt = list(set(re.findall(re_links, self.body)))
chat_number_lt = [e for e in chat_number_lt if e != '']

;