一致文字のリスト
一致文字のリストを作成するには、1 つ以上の文字を角かっこ ([ ]) で囲みます。 角かっこで囲んだ文字のリストは "角かっこ表現" と呼びます。
角かっこで囲まれた文字は、それぞれ、正規表現内の角かっこ表現の位置にある単一の文字とのみ一致します。 たとえば、JScript の次の正規表現は、"Chapter 1"、"Chapter 2"、"Chapter 3"、"Chapter 4"、および "Chapter 5" と一致します。
/Chapter [12345]/
角かっこ表現は、Chapter と空白の直後の 1 文字に一致する文字セットだけを指定するために使用されます。 この場合は 9 文字目がそれに当たります。
角かっこ表現内の文字
角かっこ内では、他の場合と同じように、通常文字はその文字自体を表します。 つまり、検索対象の文字列にその文字の一致候補がある場合に一致します。 角かっこ表現内では、大半の特殊文字の意味は失われます。 ただし、次の例外があります。
右角かっこ (]) は、最初の項目でない場合はリストを終了します。 リストで右角かっこを一致させるには、左角かっこ ([) の直後に記述します。
円記号 (\) はエスケープ文字として機能します。 円記号を一致させるには、円記号を 2 つ (\\) 使用します。
文字の範囲を示すハイフンの使用
文字自体ではなく、文字の範囲を指定して一致文字を表現するには、範囲の開始文字と終了文字をハイフン (-) でつなぎます。 次の正規表現は、/Chapter [12345]/ と同じ結果をもたらします。
/Chapter [1-5]/
開始文字と終了文字も範囲に含まれます。 開始文字は Unicode の並べ替え順序において、終了文字よりも前である必要があります。 指定する各文字の文字値によって、範囲内の相対位置が決まります。
角かっこ表現の一般的な使用方法として、任意の大文字または小文字のアルファベット、または任意の数字と一致させる場合があります。 この正規表現の例を次に示します。
/[A-Za-z0-9]/
表現内でのハイフンの指定
角かっこ表現でハイフンを指定するには、次のいずれかの方法を使用できます。
前に円記号のエスケープ文字を付ける。次に例を示します。
[\-]
ハイフンを角かっこリストの先頭または最後に指定する。 次の正規表現は、すべての英小文字とハイフンに一致します。
[-a-z] [a-z-]
範囲の開始文字をコード順でハイフンよりも前の文字にし、終了文字をハイフンと等しいかハイフンよりも後の文字にする。 次の正規表現は、どちらもこれらの条件を満たしています。
[!--] [!-~]
否定を示すキャレットの使用
リストの先頭にキャレット (^) を指定することで、リストまたは範囲にないすべての文字を検索することもできます。 リストの先頭以外に指定したキャレットは、キャレット文字と一致します。つまり、特別な意味は持ちません。 次の正規表現は、1 ~ 5 以外の番号の章見出し (Chapter) と一致します。
/Chapter [^12345]/
この例では、9 文字目が 1、2、3、4、または 5 以外のものと一致します。 たとえば、"Chapter 7" や "Chapter 9" と一致します。
同じ正規表現を、ハイフン (-) を使用して表すこともできます。 この正規表現の例を次に示します。
/Chapter [^1-5]/
任意の文字との一致
ピリオド (.) は、改行文字 (\n) を除き、文字列内の印刷される文字または印刷されない文字のうち、任意の 1 文字と一致します。 JScript の /a.c/ という正規表現は、"aac"、"abc"、"acc"、"adc"、"a1c"、"a2c"、"a-c"、"a#c" などと一致します。
検索文字列に含まれるピリオド (.) と一致させるには、正規表現でピリオドの前に円記号 (\) を指定します。 /filename\.ext/ という正規表現は、"filename.ext" と一致します。