Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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_Email_String Formatting_Text Processing - Fatal编程技术网

Python 如何从“”之间提取电子邮件地址?

Python 如何从“”之间提取电子邮件地址?,python,email,string-formatting,text-processing,Python,Email,String Formatting,Text Processing,我有一个Outlook的电子邮件和姓名列表,以分号分隔,如下所示: fname lname <email>; fname2 lname2 <email2>; ... ; fnameN lnameN <emailN> email1; email2; ... ; emailN 如何在Python中实现这一点 使用列表理解: em = "fname lname <email>; fname2 lname2 <email2>; fnameN

我有一个Outlook的电子邮件和姓名列表,以分号分隔,如下所示:

fname lname <email>; fname2 lname2 <email2>; ... ; fnameN lnameN <emailN>
email1; email2; ... ; emailN
如何在Python中实现这一点


使用列表理解:

em = "fname lname <email>; fname2 lname2 <email2>; fnameN lnameN <emailN>"
email_list = [entry.split()[-1][1:-1] for entry in em.split(';')]

# email_list:
# ['email', 'email2', 'emailN']
首先,它用分号将原始字符串拆分

entry.split()
接下来,它将获取每个条目,再次拆分,这次是按空格

entry.split()[-1]
接下来,它从拆分中选择最后一个条目,即您的电子邮件

entry.split()[-1][1:-1]

这将接收您的电子邮件,其格式为,并选择尖括号[1:-1]中包含的字符串,对应于从第二个字符到第二个字符到最后一个字符的选择。

给定主题的变体:

s = 'fname lname <email>; fname2 lname2 <email2>; ... ; fnameN lnameN <emailN>'

print [ s[i+1 : i+s[i:].find('>')] for i,c in enumerate(s) if c == '<' ]

# OR

gen = ( i for i,c in enumerate(s) if c in '<>' )
print [ s[a+1:gen.next()] for a in gen]

最后,是一个适合正则表达式的任务。很高兴知道有另一种方法来思考这个问题。谢谢
entry.split()[-1][1:-1]
s = 'fname lname <email>; fname2 lname2 <email2>; ... ; fnameN lnameN <emailN>'

print [ s[i+1 : i+s[i:].find('>')] for i,c in enumerate(s) if c == '<' ]

# OR

gen = ( i for i,c in enumerate(s) if c in '<>' )
print [ s[a+1:gen.next()] for a in gen]