文字クラス

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

/b[aeiou]g/

サブトピック

文字クラス内のエスケープシーケンス
文字クラス内の文字範囲
文字クラスの補集合

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

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

/[abc*123]/

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

メタ文字

文字クラス内での意味

]

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

-

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

\

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

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

/[$\\\]\-]/

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

メタシーケンス

文字クラス内での意味

\n

改行文字に一致します。

\r

復帰文字に一致します。

\t

タブ文字に一致します。

\unnnn

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

\xnn

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

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

文字クラス内の文字範囲

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

/[a-z0-9]/

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

/[\x80-\x9A]/

文字クラスの補集合

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

/[^a-z0-9]/

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

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

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000115.html