Python - 用于从文本中获取特定行的正则表达式

我需要从电子邮件正文中获取正在解析的特定详细信息,在这种情况下,电子邮件是纯文本,格式如下:

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/

相关文章:

rust - Rust 中枚举的展平向量

rust - 如何结合 `Ord::cmp()`中的两个cmp条件

r - 按组计算数据框中出现的连续月份

generics - 如何使通用形式参数别名

android - 身份验证失败 : com. microsoft.identity.client.

nlp - 如何为 T5 模型使用 forward() 方法而不是 model.generate()

html - 列表类型消失

python - For 循环得到错误说 (odd number - odd number)/2 i

ios - matchedGeometryEffect 动画效果不流畅

python - Pandas 按行添加另一列