アクアリウムハジメマシタ!!

正規表現10選!!とにかくよく使うパターンをまとめました

正規表現10選!!とにかくよく使うパターンをまとめました。

今回はjavascriptでちょっとした計算機を自作しようと思って正規表現を久しぶりにチェックしたので、いろんなパターンを備忘録がわりにまとめときました。正規表現って結局どっか検索してコピーするケースが多いんですよね。ということで今回の記事は正規表現10選!!とにかくよく使うパターンをまとめましたです。

半角数字

まずは半角数値のみです。計算する時なんかはよく使いますよ。全角だったらエラーだしたり、変換したりだとかで。

半角数値のみの正規表現

/^[0-9]*$/

まず、「^」は文字列の頭からという意味。[0-9]はその文字が0〜9に該当するか?いう意味ですね。[abc]ならaかbかcに該当するかってことになります。次は「*(アスタリスク)」です。アスタリスクは文字の繰り返しに対応するよ、って感じですね。最後の「$」は行末にマッチするとかという意味です。なので今回の場合は最後も0〜9か?ということになります。

半角数字を確かめるための正規表現はこれで完成といきたいところなのですが、このままだと1つ問題があります。なんと空文字を受け付けてしまうのです。なので、

半角数値のみの正規表現(空文字ダメver)

/^[0-9]+$/

「*」が「+」に変わりました。実は「*」は0回以上の繰り返しでokなので空文字を受け付けてしまうのですが、「+」は1回以上の繰り返しなので空文字がはじかれるんですよね。

半角英字

次は半角英字のパターンです。こちらもよく使いますね、日本人って英字打つ時も全角の人が多かったりするんですよね。半角英字のみの正規表現はこれ↓

半角英字のみの正規表現

/^[a-zA-Z]*$/

さきほどの半角数字の場合と同じで、
「^」→先頭から、
「[]」→a-zA-Zの文字で、
「*」→0回以上
「$」→文末まで
繰り返されているかということになります。

ところがこれだと半角数字の時と同じで空文字を受け付けちゃうんですよね。なので、「*」を「+」に変えて

半角数値のみの正規表現(空文字ダメver)

/^[a-zA-Z]+$/

で完成ですね。もちろん空文字を受け付けて良い場合は「*」のままで良いですよ。

郵便番号

半角英数字のチェックの次によく使うのが郵便番号や電話番号じゃないでしょうか?ということでまずは郵便番号。

郵便番号の正規表現

/^\d{3}-\d{4}$/

今回「\」「{n}」「d」ってのがでてきましたね。順番に説明します。

まず「\(バックスラッシュ)」から。「\」は直後にでてくる正規表現記号を文字列とかと間違えないようにする、エスケープ記号です。
次は「{n}」。「{n}」は直前の文字の桁数を制限します。例えばa{10}だとaaaaaaaaaaということになり、aaaaとかaaaaaaaではNGになります。
最後は「d」。これは「\(バックスラッシュ)」とセットで全ての数字を意味します。

ということで順番に全部読んでいくと、行頭が数字で3桁。「-(ハイフン)」で繋がれた行末が4桁の数字でできた文字列ということになります。郵便番号ですね。

電話番号

電話番号はハイフンありとかなしとか、パターンがあります。それぞれに対応した正規表現です。まずはハイフンなしから。

電話番号の正規表現(ハイフンなし)

/^0\d{9,10}$/

となります。まずはハイフンなしパターンです。読み方は先頭が0ではじまり、その後に9桁もしくは10桁の数字が続きますよってなります。
{n1,n2}は直前の数字がn1桁かn2桁という読み方になります。例えば\d{2,3}だと11とか45や111とか763ならokということになります。

電話番号の正規表現(ハイフンあり)

/^0\d{2,3}-\d{1,4}-\d{4}$/

こちらはハイフンありバージョンです。先頭が0ではじまって数字が2桁か3桁、「-(ハイフン)」でつながって数字が1桁から4桁また「-(ハイフン)」でつながって数字が4桁ということになりますね。

URL

正規表現でよく使うものといえばURLもよくありますね。URLとは「https://〜」ではじまるwebサイトを見るためのアレです。

URLの正規表現

/^https?:\/\/

URLの正規表現はこうです。今回はじめてでてきたのが「?」です。この「?」の意味は直前の文字が0個か1個の場合はマッチするというものです。この場合「?」の直前がsなので、httpsのsがあるかないかどちらでもいいよってことですね。
ということで、文頭がhttpsではじまって:がついて、そのあとのバックスラッシュはスラッシュをエスケープするためのもので、それが2個続きあとはなんでもよしってことです。文頭のマッチしかみてませんので。

メールアドレス

メールアドレスの正規表現もよく使いますよね。メールアドレスの正規表現はいろんなケースがありますが、今回は半角英数文字と「@」と「.」、あとはアドレスによく使われている「-(ハイフン)」「_(アンダースコア)」で構成されるアドレスを想定しいます。

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

^[a-zA-Z0-9-_\.]+@[a-zA-Z0-9-_\.]+$

これも正規表現になれてくると分かりやすいですね。文頭がa〜zかA〜Zか0〜9、あとはハイフン、アンダースコア、ドットではじまってとなっていますね。ドットの前のバックスラッシュの抜けに注意してください。ドットはエスケープ必要です。これが「+」で「@」につなげられています。つまり「@」の前に1文字もないのはダメですよってことです。そして文末も文頭と同じa〜zかA〜Zか0〜9、あとはハイフン、アンダースコア、ドットで終わっていればマッチするよってなってますね。

全角ひらがな

次は名前や住所のフリガナでよく使う全角ひらがなです。フォームとかできちんとひらがな入力されているかチェックしたい時に大活躍です。

全角ひらがなの正規表現

/^[ぁ-んー]+$/

伸ばし棒はいれときました。「はーと」とかででてくる全角のハイフンです。こちらも簡単、文頭も文末も「ぁ-ん」か「ー」であればマッチすることになります。

カタカナ

こちらもフォームの入力チェックなんかでよく使います。まずは全角カタカナと半角カタカナに分けてあります。

全角カタカナの正規表現

/^[ァ-ンヴー]+$/

半角カタカナの正規表現

/^[ァ-ン゙゚\-]+$/

ともに文頭も文末も指定されている文字で成り立っていればマッチするということになります。全角ならもちろん「ァ-ンヴ」だし、半角だと「ァ-ン゙゚」になりますね。半角だと濁点は独立になるので。あと、ハイフンはともにつけてありますが、半角の場合はバックスラッシュでエスケープしてくださいね。