-1

正規表現を使用して文字列から電子メールアドレスを解析する方法を一生理解することはできません。

ダウンロードするように言われたperlバージョンが付属していなかったので、Email :: Addressモジュールを使用できるとは思いません。そうでなければ、これは非常に簡単です。

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

http://www.ex-parrot.com/pdw/Mail-RFC822-Address.htmlは、電子メールを解析するための正規表現を示しています。

メールの仕様はかなり厳しいです。

おそらく、cpan を検索して、電子メールをいくつかの部分に分割するモジュールを探すのが最善でしょう。

于 2012-11-28T20:50:53.087 に答える
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 に答える