アプリ版:「スタンプのみでお礼する」機能のリリースについて

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._-]+)/ ;

}

試してみましたがうまくいきませんでした。

A 回答 (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;
※空白は変えてね!
    • good
    • 0

携帯電話のメールアドレスは、規格外のものもあって難しいです。


参考サイトを紹介しておきますが、一筋縄では行かない。
【参考サイト】
Perlメモ( http://www.din.or.jp/~ohzaki/perl.htm )
→メールアドレスの正規表現 ( http://www.din.or.jp/~ohzaki/perl.htm#Mail )
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!