文字クラス

Flash Player 9 以降、Adobe AIR 1.0 以降

文字クラスは、正規表現の中で該当する位置に一致可能な文字を表すリストを指定するために使用します。 文字クラスを定義するには、リストを角括弧( [ および ] )で囲みます。例えば、次の正規表現で定義している文字クラスは、 bag beg big bog bug のいずれにも一致します。

/b[aeiou]g/

文字クラス内のエスケープシーケンス

正規表現において通常は特別な意味を持つメタ文字やメタシーケンスのほとんどは、文字クラス内では特別な意味を持ちません。例えば、アスタリスクは正規表現の中で繰り返しを意味しますが、文字クラス内に出現するアスタリスクはその例外です。 次の文字クラスは、リストで指定されている他の文字と同じようにアスタリスク文字そのものにも一致します。

/[abc*123]/

ただし、次の表に示す 3 つの文字は、文字クラス内で特別な意味を持つメタ文字として機能します。

メタ文字

文字クラス内での意味

]

文字クラスの末尾を示します。

-

文字の範囲を示します。次の「文字クラス内の文字範囲」の節を参照してください。

¥

メタシーケンスを指定します。また、メタ文字の特別な意味を無効化します。

これらの文字のいずれかをリテラル文字(特別な意味のない一般の文字)として認識させるには、その文字の直前にエスケープ文字の円記号を付ける必要があります。 例えば、次の正規表現で定義している文字クラスは、 $ ¥ ] - の 4 つの記号いずれにも一致します。

/[$\\\]\-]/

文字クラス内で特別な意味を持つメタ文字があるのと同じように、次のメタシーケンスは文字クラス内でもメタシーケンスとして機能します。

メタシーケンス

文字クラス内での意味

¥n

改行文字に一致します。

¥r

復帰文字に一致します。

¥t

タブ文字に一致します。

¥u nnnn

16 進数 nnnn で指定される文字コードを持つ Unicode 文字に一致します。

¥¥x nn

16 進数 nn で指定される文字コードを持つ ASCII 文字に一致します。

その他の正規表現メタシーケンスおよびメタ文字は、文字クラス内では一般の文字として扱われます。

文字クラス内の文字範囲

ハイフンを使用すると、文字の範囲を指定できます(例: A-Z a-z 0-9 )。指定する文字は、使用している文字セットにおいて有効な範囲を構成するものである必要があります。 例えば、次の文字クラスは、 a ~ z の範囲または任意の数字のうち 1 つに一致します。

/[a-z0-9]/

また、ASCII 文字コードを示す ¥¥x nn の形式を使用し、ASCII 値の範囲を指定することもできます。例えば、次の文字クラスは、拡張 ASCII 文字のセットに属する任意の文字に一致します( é ê など)。

\\x

文字クラスの補集合

文字クラスの先頭にキャレット文字( ^ )を指定すると、クラスの指定が反転し、リストに含まれない任意の文字に一致するという意味になります。例えば、次の文字クラスは、 a ~ z の範囲および数字を除く任意の 1 文字に一致します。

/[^a-z0-9]/

補集合を表すキャレット文字( ^ )は、文字クラスの先頭に記述する必要があります。それ以外の場所に記述した場合は、単に文字クラスにキャレット文字を含める意味になります。 例えば、次の文字クラスは、いろいろな記号(キャレットを含む)のいずれかに一致します。

/[!.,#+*%$&^]/