メールアドレスにマッチする正規表現
こんばんは、佐伯です。
今回は地味に使いそうな「正規表現でメールアドレスをマッチさせる」について書きます。
条件
・ユーザ名@ホスト名.ドメイン名の形式
・ユーザ名は英数字(大文字、小文字)または「_-.」
・ホスト名は英数字(大文字、小文字)または「_-.」
・ドメイン名は英数字(大文字、小文字)
対象例
・yamada@gmail.com,
・I_lile_dog-nyan-nyan@saeki.co.jp
・test@test.jp
などなど
さっそく解答です
[¥w¥-¥.]+@[a-zA-Z0-9¥-¥.]+¥.[a-zA-Z]+
一例ですが、こんな感じです。
なんじゃこりゃ、という方の為に以下で切り分けて解説します。
ユーザ名(yamada)
[¥w¥-¥.]+
¥wは英単語を構成する文字、もしくはアンダーバーを指定します。
¥-は「-」を、¥.は「.」を指定しています。
それを[ ]で囲むことで、¥wか¥-か¥.のどれかひとつを指定できます。
最後に+をつけることで上記の「¥wか¥-か¥.のどれかひとつ」を1回以上繰り返している、というわけです。
ホスト名(@gmail)
@[a-zA-Z0-9¥-¥.]+
ユーザ名のように[¥w¥-¥.]+ という書き方でもよいですが、ちょっと変えてみました。
@の後に、
a-z(英小文字)、A-Z(英大文字)、0-9(数字)¥-、¥.のどれかひとつ
を1回以上繰り返しています。
ドメイン名(.com)
¥.[a-zA-Z]+
これも今までと同じです。
¥.(.)の後にa-z(英小文字)、A-Z(英大文字)のどれかひとつ
を1回以上繰り返しています。