メールアドレス抽出の正規表現

■ Procmailで使えるメールアドレス正規表現

From、Return-Path などからメールアドレスを抽出する正規表現、意外と難しいです。
結論から言えば、正規表現一発ではできません。

例えば、こんな反則的なメールアドレスが実際にあったりして

Return-Path: <a-b-c._.d=efg@hogehoge.com>

例えば、メールアドレスらしきものが2つ含まれていたりして

From: "I-am@office.work" <a-b-c._.d=efg@hogehoge.com>

こんなやつも引っ掛けるには以下のようにします。

echo 変数 | grep -o -E "[-a-zA-Z0-9_.=+]+@[-a-zA-Z0-9_.]+" | tail -n 1

すると、こう展開されます。

echo '"I-am@office.work" <a-b-c._.d=efg@hogehoge.com>' \
| grep -o -E "[-a-zA-Z0-9_.=+]+@[-a-zA-Z0-9_.]+" | tail -n 1

結果
a-b-c._.d=efg@hogehoge.com

コメントを残す