Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式python查找电子邮件_Python_Regex_Email Validation - Fatal编程技术网

使用正则表达式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)