我有一个来自Linux邮件日志的字符串,看起来像:
May 20 12:19:28 example-03 amavis[1445]: (01445-15) Passed SPAMMY {RelayedTaggedInbound}, [10.4.3.2]:49488 [10.4.3.2] <[email protected]> -> <[email protected]>, Queue-ID: C00OZs0w9DB, Message-ID: <5ZCfDBMQyiUjOVD78ZFxg5%3D%[email protected]>, mail_id: aCUpU0wtUaR, Hits: 15.587, size: 21407, queued_as: dgzikuucQ9i, 438 ms
我需要提取的元素是:
<[email protected]> -> <[email protected]>
我想让我的正则表达式尽可能简单明了,所以我不想使用正则表达式来获取电子邮件地址格式。尤其是因为重新格式化电子邮件格式是一个容易出错的过程!
我试过了 :
$row =~ /(<.*> -> <.*>,)/;
但是,尽管存在逗号分隔符,但该语法始终将Message-ID的末尾与输出匹配,例如:
<[email protected]> -> <[email protected]>, Queue-ID: C00OZs0w9DB, Message-ID: <5ZCfDBMQyiUjOVD78ZFxg5%3D%[email protected]>,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句