Python 如何从原始字符串获取所有电子邮件

Python 如何从原始字符串获取所有电子邮件,python,regex,email,web,screen-scraping,Python,Regex,Email,Web,Screen Scraping,我尝试了以下代码: contents = 'alokm.014@gmail.yahoo.com.....thankyou' match = re.findall(r'[\w\.-]+@[\w\.-]+', contents) print match 结果: alokm.014@gmail.yahoo.com.....thankyou 我想从我的电子邮件中删除…谢谢 是否可以仅获得alok。014@gmail.yahoo.com 还有一件事,内容列表更大,所以我想在 re.fi

我尝试了以下代码:

contents = 'alokm.014@gmail.yahoo.com.....thankyou'
    match = re.findall(r'[\w\.-]+@[\w\.-]+', contents)
    print match
结果:

alokm.014@gmail.yahoo.com.....thankyou
我想从我的电子邮件中删除
…谢谢

是否可以仅获得
alok。014@gmail.yahoo.com
还有一件事,内容列表更大,所以我想在
re.findall(r'[\w\.-]+@[\w\.-]+',目录)

如果可能的话。

我不知道python,但是像Java这样的语言有一些库可以帮助验证URL和电子邮件地址。或者,您可以使用经过良好检查的正则表达式

我的建议是继续删除基于点的字符串结尾,直到字符串验证为止。因此,测试字符串,如果它不能作为电子邮件验证,请从右侧读取字符串,直到遇到句点,然后将句点和所有内容放到右侧,然后重新开始

所以你会这样循环

alokm.014@gmail.yahoo.com.....thankyou
alokm.014@gmail.yahoo.com....
alokm.014@gmail.yahoo.com...
alokm.014@gmail.yahoo.com..
alokm.014@gmail.yahoo.com.
alokm.014@gmail.yahoo.com

在这一点上,它将验证为一个真实的电子邮件地址。是的,很慢。是的,它可以被欺骗。但是它在大多数情况下都是基于给出的少量信息(可能的字符串)工作的。

我不知道python,但是像Java这样的语言有帮助验证URL和电子邮件地址的库。或者,您可以使用经过良好检查的正则表达式

我的建议是继续删除基于点的字符串结尾,直到字符串验证为止。因此,测试字符串,如果它不能作为电子邮件验证,请从右侧读取字符串,直到遇到句点,然后将句点和所有内容放到右侧,然后重新开始

所以你会这样循环

alokm.014@gmail.yahoo.com.....thankyou
alokm.014@gmail.yahoo.com....
alokm.014@gmail.yahoo.com...
alokm.014@gmail.yahoo.com..
alokm.014@gmail.yahoo.com.
alokm.014@gmail.yahoo.com

在这一点上,它将验证为一个真实的电子邮件地址。是的,很慢。是的,它可以被欺骗。但它在大多数情况下都会根据给出的小信息(可能的字符串)工作。

有趣的问题!还有一个
Python Regex
程序,可以帮助从
内容中提取电子邮件:

import re

contents = 'alokm.014@gmail.yahoo.com.....thankyou'

emailRegex = re.compile(r'''
[a-zA-Z0-9.]+         # username
@                     # @ symbol
[a-zA-Z0-9.]+\.com    # domain             
''', re.VERBOSE)      # re.VERBOSE helps make Regex multi-line with comments for better readability

extractEmail = emailRegex.findall(contents)
print(extractEmail)
输出将是:

['alokm.014@gmail.yahoo.com']

现在,我建议您参考这篇文章,了解这个程序中发生了什么,并提出一个更好的版本,可以从您的大文本中提取所有电子邮件。

有趣的问题!还有一个
Python Regex
程序,可以帮助从
内容中提取电子邮件:

import re

contents = 'alokm.014@gmail.yahoo.com.....thankyou'

emailRegex = re.compile(r'''
[a-zA-Z0-9.]+         # username
@                     # @ symbol
[a-zA-Z0-9.]+\.com    # domain             
''', re.VERBOSE)      # re.VERBOSE helps make Regex multi-line with comments for better readability

extractEmail = emailRegex.findall(contents)
print(extractEmail)
输出将是:

['alokm.014@gmail.yahoo.com']

现在,我建议您参考这篇文章,了解这个程序中发生了什么,并提出一个更好的版本,可以从您的大文本中提取所有电子邮件。

如果没有任何额外的限制,这看起来是不可能的。假设你有
什么东西。something@yahoo.it.was.great
。你怎么知道地址的结尾?所有的电子邮件后面都是
?列表中是否有一组有限的顶级域(如.org、.com等)?回答这些问题可能会让你的问题变得更容易。现在,您正在使用的正则表达式和其他更复杂的电子邮件正则表达式似乎认为整个字符串都是有效的电子邮件。不,只有一些电子邮件包含“……谢谢”它们总是以
.com
结尾吗?不,有许多域没有任何额外的限制,这看起来是不可能的。假设你有
什么东西。something@yahoo.it.was.great
。你怎么知道地址的结尾?所有的电子邮件后面都是
?列表中是否有一组有限的顶级域(如.org、.com等)?回答这些问题可能会让你的问题变得更容易。现在,您正在使用的正则表达式和其他更复杂的电子邮件正则表达式似乎认为整个字符串都是有效的电子邮件。不,只有一些电子邮件包含“……谢谢”它们总是以
.com
结尾吗?不,有很多域