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 - Fatal编程技术网

Python 将正则表达式应用于实例-来自电子邮件

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

我正在使用imaplib模块登录我的gmail帐户并检索电子邮件。 这给了我很多信息,还有to/from/subject/body文本。根据 返回的typemsg th对象是一个实例

当我将正则表达式应用于msg对象时,它不起作用,因为它需要一个字符串,而这显然是一个实例,因此不起作用

当我只给它一个字符串时,识别日期的正则表达式示例:

    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等呢?