- ベストアンサー
perlでファイルからメールアドレスを抽出
perlでエラーアドレスを抽出したく いろいろ調べてみましたがどうにもうまくいきません。 主に携帯アドレスが中心ですので RFCに基づいているというよりは簡易な正規表現で、 重複排除くらいはできると理想なのですが 既成で何かいいものはありませんかね? $format='[\w.-]+\@([\w-]+\.)+\w+'; # 簡略なメールアドレス正規表現 open(IN, "エラー.dbx"); foreach(<IN>) { if($_ =~ /($format)/){ push(@emails,$1."\n"); } } close(IN); print @emails; とか open(IN, 'エラー.dbx'); @data = <IN>; close(IN); foreach(@data){ s/ //g; print "$_\n" if /([\w._-]+@[\w._-]+)/ ; } 試してみましたがうまくいきませんでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これでどうかな? $myaddress='aaa@example.com'; # 自分のアドレス open(IN, "エラー.dbx"); foreach(<IN>){ if(/^To: .*?([-+\w.]+\@[-\w.]+\.\w{2,5})(\W|$)/ && $1 ne $myaddress){ push(@emails,$1."\n"); } } close(IN); print @emails; ※空白は変えてね!
その他の回答 (1)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
携帯電話のメールアドレスは、規格外のものもあって難しいです。 参考サイトを紹介しておきますが、一筋縄では行かない。 【参考サイト】 Perlメモ( http://www.din.or.jp/~ohzaki/perl.htm ) →メールアドレスの正規表現 ( http://www.din.or.jp/~ohzaki/perl.htm#Mail )