メールアドレスのルール
メールアドレスに使用できる文字や文字数
- 半角英小文字、数字、「-」(ハイフン)、「.」(ドット)、「_」(アンダーバー)のみ
- 文字数は、3文字以上30文字以内
- ひとつ目の文字は、アルファベットまたは数字のみ
出典
気づき
これを参考にする。
一つ目の文字は、アルファベットまたは数字のみ
最初を表す文字があったようなので探す。
^
文字列の先頭がマッチ
出典
rubyでは/A
を使う
Rubyの正規表現でよくある落とし穴は、より安全な\Aや\zがあることを知らずに危険な^や$を使ってしまうことです。
出典
\A[a-zA-Z1-9]
気づき
これで一文字目が英語の小文字、大文字、数字にすることができた。
一文字目を指定した後に「-」(ハイフン)、「.」(ドット)、「_」(アンダーバー)を含んだ文字列を表現する
{n}
直前の文字をn回繰り返したものにマッチ
出典
\A[a-zA-Z1-9]+[a-zA-Z1-9\._-]{5}
eメールみたいな正規表現を行った。
\A[a-zA-Z1-9]+[a-zA-Z1-9\._-]{5}+@+[a-zA-Z1-9\._-]{5}+\.+[a-zA-Z]{5}+\z
abc@i.softbank.jp
を擦り合わせてみると
\A[a-zA-Z1-9]+[a-zA-Z1-9\._-]{5}
はabc
@+[a-zA-Z1-9\._-]{5}
は@i.softbank
\.+[a-zA-Z]{5}+\z
は.jp
に対応させた。
eメールの正規表現の紹介がされていたものを見る。
[\w\-\._]+@[\w\-\._]+\.[A-Za-z]+
出典
気づき
自分のものと全然違う
また長さの制限なども書かれていなかった。
そんな気にしなくてもいいのかな。
ドキュメントを読みながらできるだけ近づけていく。
正規表現を省略していく。
気づき
トップレベルドメインの正規表現の[a-zA-Z]
は紹介されていた正規表現を真似しました。
一応調べましたが、数字が入っていないようなので入れませんでした。(国名がほとんどなので)
関連記事
編集する
日本語の正規表現
ぁ-んァ-ン一-龥
日本語を含めた正規表現
\A[\wぁ-んァ-ン一-龥\.\*\+\/\?\{\|\}~!#$%&'-=^_`]+@[\wぁ-んァ-ン一-龥\-\.]+\.[a-zA-Z]+\z
出典
感想
僕も参考のものに少し近づいた気がします。
あっているかどうか別として正規表現の勉強ができてよかった。
勉強する前は正規表現がどのような内容が書かれているかは理解できなかったけど、
今は少し理解できるようになったと思っている。
またプログラミング言語で正規表現が違うことを知れたのはよかった。
正規表現もまだ深そうだ。