我想在文本文件中查找有效的电子邮件地址,这是我的代码:
email = re.findall(r'[a-zA-Z\.-]+@[\w\.-]+',line)
但我的代码显然不包含@符号之前有数字的电子邮件地址。我的代码无法处理没有有效结尾的电子邮件地址。那么有人可以帮我解决这两个问题吗?谢谢你!
我的问题的一个例子是:
我的代码可以找到此电子邮件:[电子邮件受保护] /cdn-cgi/l/email-protection
但它找不到这个:[电子邮件受保护] /cdn-cgi/l/email-protection
它也无法过滤掉此电子邮件:xyz@gmail
来自python 重新文档 https://docs.python.org/2/library/re.html#regular-expression-syntax, \w
匹配任何字母数字字符和下划线,相当于集合[a-zA-Z0-9_]
. So [\w\.-]
将适当地匹配数字和字符。
email = re.findall(r'[\w\.-]+@[\w\.-]+(\.[\w]+)+',line)
这个帖子 http://www.regular-expressions.info/email.html更广泛地讨论了匹配电子邮件地址,并且您还会遇到一些代码无法捕获的匹配电子邮件地址的陷阱。例如,电子邮件地址不能完全由标点符号组成(...@....
)。此外,地址通常有最大长度,具体取决于电子邮件服务器。此外,许多电子邮件服务器匹配非英语字符。因此,根据您的需求,您可能需要更全面的模式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)