Python 将正则表达式应用于实例-来自电子邮件
我正在使用imaplib模块登录我的gmail帐户并检索电子邮件。 这给了我很多信息,还有to/from/subject/body文本。根据 返回的typemsg th对象是一个实例 当我将正则表达式应用于msg对象时,它不起作用,因为它需要一个字符串,而这显然是一个实例,因此不起作用 当我只给它一个字符串时,识别日期的正则表达式示例:Python 将正则表达式应用于实例-来自电子邮件,python,regex,email,Python,Regex,Email,我正在使用imaplib模块登录我的gmail帐户并检索电子邮件。 这给了我很多信息,还有to/from/subject/body文本。根据 返回的typemsg th对象是一个实例 当我将正则表达式应用于msg对象时,它不起作用,因为它需要一个字符串,而这显然是一个实例,因此不起作用 当我只给它一个字符串时,识别日期的正则表达式示例: match = re.search(r"Time:\s(([0-2]\d):([0-5]\d))", text) # validates hour an
match = re.search(r"Time:\s(([0-2]\d):([0-5]\d))", text) # validates hour and minute in a 24 hour clock
所以有三个问题:
1.我这样做是正确的还是有更好的方法?
2.如何将正则表达式应用于此“实例”信息,以便识别日期/时间等
3.如何检索电子邮件正文
result, data = mail.fetch(latest_email_id, "(RFC822)")
raw_email = data[0][1]
email_message = email.message_from_string(raw_email)
msg = email.message_from_string(raw_email)
msg.get_payload()
再次感谢我认为这个问题可能与我回答的另一个问题非常接近: 另一个人的主要问题是get_有效负载可以返回您必须检查的多部分对象。它并不总是一根线 下面是另一个问题的片段,该问题涉及如何处理从get_有效负载获得的对象:
if isinstance(payload, list):
for m in payload:
print str(m).split()
else:
print str(m).split()
此外,您可以在这里查看我与该问题OP的实际扩展对话:结果表明,电子邮件正文可以通过有效负载[0]访问,因为有效负载是一个列表,而msg变量是一个实例。然后我用一个简单的
payload = msg.get_payload()
body = payload[0]
str_body = str(body)
再次感谢您的帮助我已经有一点没有使用imaplib了,但是msg实例可以通过strmsg转换为字符串,或者它具有返回msgI的属性。我是python新手,但是当我键入msg时,它会返回吗?这不是一种类型吗?我想你可能是对的,但我真的不知道如何解决这个问题。那么,如果msg是一个多部分对象,我如何访问body/from/subject等呢?