正規表現によるメールアドレスの検出 - 正規表現

メールアドレスを検出する正規表現を紹介します。
正規表現でメールアドレスを検出するパターンは次の通りです。

パターン1

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

パターン2

([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+

パターン3

[\w\d_-]+@[\w\d_-]+\.[\w\d._-]+

パターン4

(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))

解説

\w は英数字と下線(アルファベット、数字、下線)を表します。[0-9A-Za-z_] と同じ意味になります。

+ は直前の文字の1回以上の繰り返しを意味します

[]はグループを表します。括弧内で指定した文字のいずれかとなります。[-+.']は"-"か"+"か"."か"'"のどれかという意味になります。

* は直前の文字の0回以上の繰り返しを意味します。

\. は"."の文字を表します。\を除いた"."は任意の一文字を示す意味になるためです。


著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
掲載日: 2011-02-03
iPentec all rights reserverd.