python从电子邮件线程提取列表匹配
我是python新手。我需要检索匹配列表 例如,下面是我的文本,它是一封电子邮件。 我需要提取所有到,从,发送,主题和正文从邮件线程 结果需要从列表中删除 From(1)=克兰德尔,肖恩 From(2)=马库斯·内特尔顿 To(1)=克兰德尔,肖恩;巴德尔,罗伯特 至(2)=梅雷迪斯,凯文 如上述发送、主题等python从电子邮件线程提取列表匹配,python,regex,match,Python,Regex,Match,我是python新手。我需要检索匹配列表 例如,下面是我的文本,它是一封电子邮件。 我需要提取所有到,从,发送,主题和正文从邮件线程 结果需要从列表中删除 From(1)=克兰德尔,肖恩 From(2)=马库斯·内特尔顿 To(1)=克兰德尔,肖恩;巴德尔,罗伯特 至(2)=梅雷迪斯,凯文 如上述发送、主题等 "-----Original Message----- From: Crandall, Sean Sent: Wednesday, May 23, 2001 2:56 PM T
"-----Original Message-----
From: Crandall, Sean
Sent: Wednesday, May 23, 2001 2:56 PM
To: Meredith, Kevin
Subject: RE: Spreads and Product long desc.
Kevin,
Is the SP and NP language in the spread language the same language we use when we transact SP15 or NP15 on eol?
-----Original Message-----
From: Meredith, Kevin
Sent: Wednesday, May 23, 2001 11:16 AM
To: Crandall, Sean; Badeer, Robert
Subject: FW: Spreads and Product long desc."
对此,您可以使用
re.findall()
,请参阅:。例如
将返回来自姓名的列表(['Crandall,Sean','Meredith,Kevin']
),假设总是相同数量的空格
如果你想变得有趣,你可以在同一个表达式中进行多次搜索:例如
re.findall("From: (.*) \nSent: (.*)", input_string);
将返回
[('Crandall,Sean','2001年5月23日星期三下午2:56'),('Meredith,Kevin','2001年5月23日星期三上午11:16')
您可以使用re.findall()
进行此操作,请参阅:。例如
将返回来自姓名的列表(['Crandall,Sean','Meredith,Kevin']
),假设总是相同数量的空格
如果你想变得有趣,你可以在同一个表达式中进行多次搜索:例如
re.findall("From: (.*) \nSent: (.*)", input_string);
将返回<代码> [(Crand,肖恩,'星期三,2001年5月23日下午2点56分),(Meldith',凯文,'星期三,2001年5月23日11:16AM)] < /代码>
< P>如果你不知道如何使用正则表达式,并且你的问题不那么难,你可以考虑使用<代码>分裂()/<代码>和<代码>替换()/<代码>函数。< /P> 以下几行代码可能是一个良好的开端:mails = """-----Original Message-----
From: Crandall, Sean
Sent: Wednesday, May 23, 2001 2:56 PM
To: Meredith, Kevin
Subject: RE: Spreads and Product long desc.
Kevin,
Is the SP and NP language in the spread language the same language we use when we transact SP15 or NP15 on eol?
-----Original Message-----
From: Meredith, Kevin
Sent: Wednesday, May 23, 2001 11:16 AM
To: Crandall, Sean; Badeer, Robert
Subject: FW: Spreads and Product long desc."""
mails_list = mails.split("-----Original Message-----\n")
mails_from = []
mails_sent = []
mails_to = []
mails_subject = []
mails_body = []
for mail in mails_list:
if not mail:
continue
inter = mail.split("From: ")[1].split("\nSent: ")
mails_from.append(inter[0])
inter = inter[1].split("\nTo: ")
mails_sent.append(inter[0])
inter = inter[1].split("\nSubject: ")
mails_to.append(inter[0])
inter = inter[1].split("\n")
mails_subject.append(inter[0])
mails_body.append(inter[0])
看看这如何只使用真正的基本概念
您可能需要考虑以下几点:
- 你自己试试,你可能需要一些调整
- 使用这种方法,解析方法非常困难,邮件的格式必须非常准确
- 可能需要删除一些空间,例如使用
方法replace()
如果你不知道如何使用正则表达式,因为你的问题不是那么困难,你可以考虑使用<代码> SPLIT()/<代码>和<代码>替换()/<代码>函数。< /P> 以下几行代码可能是一个良好的开端:
mails = """-----Original Message-----
From: Crandall, Sean
Sent: Wednesday, May 23, 2001 2:56 PM
To: Meredith, Kevin
Subject: RE: Spreads and Product long desc.
Kevin,
Is the SP and NP language in the spread language the same language we use when we transact SP15 or NP15 on eol?
-----Original Message-----
From: Meredith, Kevin
Sent: Wednesday, May 23, 2001 11:16 AM
To: Crandall, Sean; Badeer, Robert
Subject: FW: Spreads and Product long desc."""
mails_list = mails.split("-----Original Message-----\n")
mails_from = []
mails_sent = []
mails_to = []
mails_subject = []
mails_body = []
for mail in mails_list:
if not mail:
continue
inter = mail.split("From: ")[1].split("\nSent: ")
mails_from.append(inter[0])
inter = inter[1].split("\nTo: ")
mails_sent.append(inter[0])
inter = inter[1].split("\nSubject: ")
mails_to.append(inter[0])
inter = inter[1].split("\n")
mails_subject.append(inter[0])
mails_body.append(inter[0])
看看这如何只使用真正的基本概念
您可能需要考虑以下几点:
- 你自己试试,你可能需要一些调整
- 使用这种方法,解析方法非常困难,邮件的格式必须非常准确
- 可能需要删除一些空间,例如使用
方法replace()