-1

我一生都无法弄清楚如何使用 RegEx 从字符串中解析出电子邮件地址。

我不认为我可以使用 Email::Address 模块,因为它没有附带我们​​被告知要下载的 perl 版本,否则这将非常简单。

我当前使用 Email::Address 的代码

use strict;

#use Email::Valid;

my $infile = 'IJCA_reviewer_list.txt';
my $outfile = 'output.txt';
open my $out, ">> $outfile";
open my $in, "< $infile" or die "Can't open $infile : $!";
use Email::Address;

while(my $line = <$in> ) {

    chomp $line;

    my $addrs = Email::Address->parse($line);

    print $out "$addrs , ";
}

close $in;
close $out;
4

2 回答 2

1

我会像这样使用File::SlurpEmail::Address

#!/usr/bin/env perl
#
use strict;
use warnings;

use File::Slurp qw( read_file );
use Email::Address;

my $infile  = 'IJCA_reviewer_list.txt';
my $outfile = 'output.txt';

my $intext = File::Slurp::read_file( $infile );
my @emails = Email::Address->parse( $intext );

File::Slurp::write_file( $outfile, join("\n", @emails) );

更新:如果您在安装 CPAN 模块时需要帮助,可以阅读内容。

于 2012-11-29T18:54:52.537 回答
1

http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html显示用于解析电子邮件的正则表达式。

电子邮件的规范非常苛刻。

您可能最好在 cpan 中搜索一个可以为您将电子邮件分成几部分的模块。

于 2012-11-28T20:50:53.087 回答