使用正则表达式python查找电子邮件
我想在文本文件中查找有效的电子邮件地址,这是我的代码:使用正则表达式python查找电子邮件,python,regex,email-validation,Python,Regex,Email Validation,我想在文本文件中查找有效的电子邮件地址,这是我的代码: email = re.findall(r'[a-zA-Z\.-]+@[\w\.-]+',line) 但我的代码显然不包含在@sign之前有数字的电子邮件地址。我的代码无法处理没有有效结尾的电子邮件地址。有人能帮我解决这两个问题吗?谢谢大家! 我的问题的一个例子是: 我的代码可以找到此电子邮件:xyz@gmail.com 但它找不到这个:xyz123@gmail.com 而且它也无法过滤掉此电子邮件:xyz@gmail尝试验证\u电子邮件软
email = re.findall(r'[a-zA-Z\.-]+@[\w\.-]+',line)
但我的代码显然不包含在@sign之前有数字的电子邮件地址。我的代码无法处理没有有效结尾的电子邮件地址。有人能帮我解决这两个问题吗?谢谢大家!
我的问题的一个例子是:
我的代码可以找到此电子邮件:xyz@gmail.com
但它找不到这个:xyz123@gmail.com
而且它也无法过滤掉此电子邮件:xyz@gmail尝试
验证\u电子邮件
软件包
pip install validate_email
然后
不是我的,但我以前在应用程序中使用过
从中,\w
匹配任何字母数字字符和下划线,相当于集合[a-zA-Z0-9.
。因此,[\w\.-]
将适当地匹配数字和字符
email = re.findall(r'[\w\.-]+@[\w\.-]+(\.[\w]+)+',line)
更广泛地讨论了匹配电子邮件地址,您遇到的匹配电子邮件地址中还有一些代码无法捕捉到的陷阱。例如,电子邮件地址不能完全由标点符号组成(
..@..
)。此外,根据电子邮件服务器的不同,地址通常有一个最大长度。此外,许多电子邮件服务器匹配非英语字符。因此,根据您的需要,您可能需要更全面的模式。谢谢。但是我只能通过正则表达式来实现吗?我只喜欢使用正则表达式你能解释一下w后面的“-”是什么吗?它与“-”字符完全匹配,这样用户就可以输入类似john的内容了-doe@example.com. 是学习正则表达式以及每一部分如何工作的一个很好的资源。对我来说不起作用:error:bad character range\w-\。在位置2
username允许在电子邮件地址中使用加号使用此r'[\w\.-]+@[\w\.-]+(?:\.[\w]+)+”
将更加可靠。
^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$
email = re.findall(r'[\w\.-]+@[\w\.-]+(\.[\w]+)+',line)