本文へスキップ
BecomeCoder

正規表現コース · 第2章 文字にマッチする · レッスン4

文字クラス ― [ ] でどれか1文字を指定する

ブラウザで完結

導入

[ ](角カッコ)で囲むと「この中のどれか1文字」という意味になります。これを 文字クラス と呼びます。c.t. は「なんでもいい1文字」でしたが、文字クラスを使えば「候補を絞った1文字」を指定できます。

説明

角カッコの中に、マッチさせたい文字を並べます。

パターン: [cbr]at
対象:     cat bat rat mat
マッチ:   [cat] [bat] [rat] mat  ← c,b,r のどれか + "at"。mat はマッチしない

[cbr] は「c か b か r のいずれか1文字」を表します。だから cat bat rat にはマッチしますが、mat にはマッチしません。角カッコ全体で 1文字ぶん である点に注意してください。

連続する範囲は -(ハイフン)で省略できます。

[0-9]     0 から 9 までの数字1文字
[a-z]     小文字のアルファベット1文字
[A-Z]     大文字のアルファベット1文字
[a-zA-Z]  大文字・小文字のアルファベット1文字
[0-9a-f]  16進数で使う文字(0〜9 と a〜f)1文字
パターン: [a-z][0-9]
対象:     a1 B2 c3 44
マッチ:   [a1] B2 [c3] 44  ← 小文字+数字の並びだけがマッチ

角カッコの中ではメタ文字がおとなしくなる [ ] の中では、多くのメタ文字が「ただの文字」として扱われます。たとえば [.] は「ピリオドそのもの」を意味し、エスケープしなくても大丈夫です。ただし - は範囲の意味を持つので、文字として使いたいときは先頭・末尾に置くか \- とします。

やってみよう

[abc] は3文字のどれか 1文字」というイメージをつかみましょう。- を使えば [0-9] のように範囲でまとめて書けます。

実際に動かしてみよう

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

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

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