導入
[ ](角カッコ)で囲むと「この中のどれか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] のように範囲でまとめて書けます。