A社の佐伯さんがのらりくらりと

A社の佐伯さんがのらりくらりと。インターネットと少しだけ生活のこと。

メールアドレスにマッチする正規表現

f:id:cav_inet:20160313205713j:plain

こんばんは、佐伯です。

今回は地味に使いそうな正規表現でメールアドレスをマッチさせる」について書きます。

 

条件

・ユーザ名@ホスト名.ドメイン名の形式

・ユーザ名は英数字(大文字、小文字)または「_-.」

・ホスト名は英数字(大文字、小文字)または「_-.」 

ドメイン名は英数字(大文字、小文字)

 

対象例

・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回以上繰り返しています。