導入
最後に、実務でよく必要になるパターンをレシピとしてまとめます。丸暗記する必要はありません。「こういうものは正規表現で書ける」と知っておき、必要なときに組み立て直せることが大切です。
説明
いずれも「文字列全体がその形か」を調べる想定で ^ ... $ を付けています。用途に応じて外して使ってください。
半角数字のみ: ^[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 は、これまで学んだ要素の組み合わせです。「0か1 + 数字」または「2 + 0〜3」で 00〜23 時を表し(選択とグループ)、: を挟み、0〜5 + 数字で 00〜59 分を表しています(文字クラスと連結)。ひとつずつ分解すれば、決して魔法ではないと分かります。
完璧を目指しすぎない メールアドレスやURLを「厳密に」検証する正規表現は非常に複雑になり、かえって実用に耐えません。実務では「明らかに違うものを弾く」程度のざっくりしたパターンで十分なことが多く、最終的な正しさは実際に送ってみる・アクセスしてみる、といった別の手段で確かめるのが定石です。
やってみよう
上のレシピを、これまでの章の知識で「なぜそうなるのか」読み解いてみましょう。パターンを部品に分解できれば、必要な検証は自分で組み立てられます。