Perl正则表达式匹配范围太广

小码

我有一个来自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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Perl正则表达式匹配范围太广

来自分类Dev

匹配范围的正则表达式

来自分类Dev

Perl正则表达式太贪婪

来自分类Dev

正则表达式匹配得太频繁

来自分类Dev

Perl正则表达式:与此匹配,但不匹配

来自分类Dev

如果正则表达式匹配A而不是正则表达式B,则Perl打印

来自分类Dev

perl-与正则表达式之间的范围

来自分类Dev

正则表达式以匹配金额范围

来自分类Dev

正则表达式-与可选范围匹配的数字

来自分类Dev

正则表达式使用间隔匹配(精确或范围)

来自分类Dev

正则表达式匹配时间范围

来自分类Dev

正则表达式以匹配日期范围(包括月份)

来自分类Dev

正则表达式匹配范围内

来自分类Dev

正则表达式匹配时间范围

来自分类Dev

正则表达式以匹配金额范围

来自分类Dev

如何从正则表达式匹配中获取范围

来自分类Dev

Perl正则表达式无法匹配行尾

来自分类Dev

Perl正则表达式以匹配特殊字符

来自分类Dev

打印正则表达式匹配Perl

来自分类Dev

Perl正则表达式匹配元音和辅音

来自分类Dev

使用正则表达式查找匹配项-Perl

来自分类Dev

Perl正则表达式条件匹配

来自分类Dev

正则表达式在Perl中不匹配

来自分类Dev

Perl迭代正则表达式匹配项的数量

来自分类Dev

Perl正则表达式与\ w +不匹配

来自分类Dev

Perl删除与正则表达式匹配的多行

来自分类Dev

单个冒号的Perl正则表达式匹配项

来自分类Dev

Perl与终端中的正则表达式匹配?

来自分类Dev

Perl正则表达式匹配数组