我需要从电子邮件正文中获取正在解析的特定详细信息,在这种情况下,电子邮件是纯文本,格式如下:
imbad@regex.com
John Doe
+16073948374
2021-04-27T15:38:11+0000
14904
上面是从电子邮件中解析出来的 print(body) 的示例输出,如下所示:
def parseEmail(popServer, msgNum):
raw_message=popServer.retr(msgNum)[1]
str_message=email.message_from_bytes(b'\n'.join(raw_message))
body=str(str_message.get_payload())
那么,如果我需要简单地从正文对象中获取电子邮件地址和电话号码,我该如何使用正则表达式来实现?
我知道正则表达式肯定是矫枉过正的,但是我只是重新利用已经编写的现有内部实用程序来利用正则表达式进行更复杂的查询,所以这里最简单的解决方案似乎是修改正则表达式以获取所需的文本。尝试使用 str.partition() 会导致其他不相关的错误。
提前谢谢你。
最佳答案
您可以使用以下正则表达式模式:
对于电子邮件:\.+@.+\n/g
对于电话号码:\^[+]\d+\n/gm
如果在 python re 库中使用,请删除初始正斜杠。
请注意,在一封电子邮件中仅使用了全局标志,但对于电话号码模式,也使用了多行标志。
简单地遍历每个 body ,捕获这些细节并按照您喜欢的方式存储它们。
https://stackoverflow.com/questions/67322533/