【发布时间】:2021-05-19 15:59:33
【问题描述】:
我正在尝试创建一个正则表达式模式以仅在“发件人”一词之后获取电子邮件地址。
以下是输入示例:
Recip: fhavor@gmail.com
Subject: Report results (Gd)
Headers: Received: from daem.com (unknown [127.1.1.1])
Date: Sat, 13 Feb 2021 13:11:42 +0000 (GMT)
From: Tavon Lo <lt35@gmail.com>
Recip: fhavor2@gmail.com
Subject: Report results (Gd1)
Headers: Received: from daem2.com (unknown [127.1.1.1])
Date: Sat, 14 Feb 2021 13:11:42 +0000 (GMT)
From: Tavon Lo <lt36@gmail.com>
Sender: lt36@gmail.com
Recipient: hi@gmail.com
因此,应该在输出中的唯一电子邮件地址是 lt36@gmail.com
以下是我的正则表达式模式:
(?m)^Sender:([^<>@]+@[^<>]+)
这符合以下内容:
lt36@gmail.com
Recipient: hi@gmail.com
查看正则表达式演示https://regex101.com/r/qRLrAW/1
我只想要 lt36@gmail.com。我是正则表达式模式的新手,所以这可能是一个简单的解决方法,但我被卡住了。关于如何修复正则表达式模式以适应我的目标的任何想法或建议?
【问题讨论】:
-
使用
(?m)^Sender:([^<>@]+@[^<>\n]+) -
如果您不需要验证电子邮件是否有效,那么只需捕获
Sender:之后的所有内容,就像(?<=Sender: ).*一样。只需确保未启用 DOTALL 修饰符。 regex101.com/r/8TLtKt/1
标签: python python-3.x regex