这是我的字符串:
--A683C6405E1.1403410842/server.abc.com
Content-Description: Delivery report
Content-Type: message/delivery-status
Reporting-MTA: dns; server.abc.com
X-Postfix-Queue-ID: A683C6405E1
X-Postfix-Sender: rfc822; bouncer@abc.com
Arrival-Date: Tue, 13 Jun 2012 00:03:28 -0400 (EDT)
Final-Recipient: rfc822; getthis@gmail.com
Action: failed
Status: 4.4.1
--A683C6405E1.1403410842/server.abc.com
Content-Description: Undelivered Message
Content-Type: message/rfc822
Content-Transfer-Encoding: 8bit
Return-Path:
Received: by server.abc.com (Postfix, from userid 517)
id A683C6405E1; Tue, 17 Jun 2014 00:03:28 -0400 (EDT)
我需要从此字符串中提取Final-Recipient
。输出应为getthis@gmail.com
。
答案 0 :(得分:0)
Final-Recipient:\s*RFC822;\s*([\w_.+-]+@[\w-]+\.[\w-.]+)
或Final-Recipient:\s*RFC822;\s*(.*)
第一个也有邮件地址结构验证器,第二个捕获任何东西到行尾。我不知道Final-Recipient中应该有哪种邮件地址 - 如果只有合适的邮件地址都可以。但如果还有破损的邮件地址(例如abc @ abc或*?= {gmail.com),第二个正则表达式就是那个。
"/Final-Recipient:\s+?RFC822;\s+?(.*)/i"
)。我想RFC可能是大写或小写。