本文へスキップ
BecomeCoder

正規表現コース · 第5章 実践で使う · レッスン17

定番パターン集 ― そのまま使えるレシピ

ブラウザで完結

導入

最後に、実務でよく必要になるパターンをレシピとしてまとめます。丸暗記する必要はありません。「こういうものは正規表現で書ける」と知っておき、必要なときに組み立て直せることが大切です。

説明

いずれも「文字列全体がその形か」を調べる想定で ^ ... $ を付けています。用途に応じて外して使ってください。

半角数字のみ:       ^[0-9]+$
郵便番号(日本):     ^\d{3}-\d{4}$
時刻(HH:MM):        ^([01]\d|2[0-3]):[0-5]\d$
年月日:             ^\d{4}-\d{2}-\d{2}$
英数字のID:         ^[A-Za-z0-9_]{3,16}$
ざっくりメール:     ^[\w.+-]+@[\w-]+\.[\w.-]+$
ざっくりURL:        ^https?://[\w./?%&=-]+$
全角ひらがな:       ^[ぁ-ん]+$

たとえば時刻の ([01]\d|2[0-3]):[0-5]\d は、これまで学んだ要素の組み合わせです。「01 + 数字」または「2 + 03」で 00〜23 時を表し(選択とグループ)、: を挟み、05 + 数字で 00〜59 分を表しています(文字クラスと連結)。ひとつずつ分解すれば、決して魔法ではないと分かります。

完璧を目指しすぎない メールアドレスやURLを「厳密に」検証する正規表現は非常に複雑になり、かえって実用に耐えません。実務では「明らかに違うものを弾く」程度のざっくりしたパターンで十分なことが多く、最終的な正しさは実際に送ってみる・アクセスしてみる、といった別の手段で確かめるのが定石です。

やってみよう

上のレシピを、これまでの章の知識で「なぜそうなるのか」読み解いてみましょう。パターンを部品に分解できれば、必要な検証は自分で組み立てられます。

実際に動かしてみよう

パターン欄に正規表現を、下の「テスト文字列」欄に対象の文字列を入れると、マッチした部分がその場でハイライトされます(ブラウザ標準の正規表現エンジンで動きます)。フラグ(g/i/m/s)を切り替えたり、本文のパターンを書き換えたりして、マッチの変化を確かめながら進めましょう。

正規表現 — その場でマッチを確認

ブラウザ標準の正規表現エンジンでパターンを試せる学習用ウィジェットを読み込みます(外部エンジン不要・軽量です)。
スクロールして表示された時点でも自動で読み込まれます。