文字、メタ文字、およびメタシーケンス
Flash Player 9 以降、Adobe AIR 1.0 以降
最も単純な正規表現は、次のように一連の文字に一致するものです。
var pattern:RegExp = /hello/;
ただし、次の各文字はメタ文字と呼ばれ、正規表現の中では特別な意味を持ちます。
^ $ \ . * + ? ( ) [ ] { } |
例えば、次の正規表現は、文字 A の後に 0 個以上の B が続き(メタ文字のアスタリスクが繰り返しを表す)、さらにその後に C が続くストリングに一致します。
/AB*C/
メタ文字に該当する文字を正規表現のパターン内に含めて、特別な意味を表さないようにするには、エスケープ文字の円記号(
¥
)を付ける必要があります。例えば、次の正規表現は、文字 A の後に B、アスタリスク、および C が続くストリングに一致します。
var pattern:RegExp = /AB\*C/;
メタシーケンスも、メタ文字と同じように正規表現の中で特別な意味を持ちます。1 つのメタシーケンスは複数の文字によって構成されます。 以降のセクションでは、メタ文字とメタシーケンスの詳細な使用方法を示します。
メタ文字について
次の表は、正規表現で使用できるメタ文字の一覧です。
メタ文字
|
説明
|
^
(キャレット)
|
ストリングの先頭に一致します。 また、
m
(
multiline
)フラグを設定した場合は、行の先頭にも一致します。
フラグとプロパティ
を参照してください。ただし、文字クラスの先頭にキャレットを指定した場合は、ストリングの先頭ではなく補集合を意味します。 詳しくは、
文字クラス
を参照してください。
|
$
(ドル記号)
|
ストリングの末尾に一致します。 また、
m
(
multiline
)フラグを設定した場合は、改行文字(
¥n
)の直前の位置にも一致します。詳しくは、
フラグとプロパティ
を参照してください。
|
¥
(円記号)
|
特殊文字が持つ特別な意味を無効化します。
また、
/1¥/2/
のように、正規表現リテラルの中でスラッシュ文字を使用する場合も円記号を使用します(文字 1、スラッシュ、文字 2 の連続に一致)。
|
.
(ドット)
|
任意の 1 文字に一致します。
ただし、改行文字(
¥n
)には
s
(
dotall
)フラグを設定した場合にのみ一致します。詳しくは、
フラグとプロパティ
を参照してください。
|
*
(アスタリスク)
|
直前のアイテムについて 0 回以上の繰り返しに一致します。
詳しくは、
繰り返し制御文字
を参照してください。
|
+
(プラス)
|
直前のアイテムについて 1 回以上の繰り返しに一致します。
詳しくは、
繰り返し制御文字
を参照してください。
|
?
(疑問符)
|
直前のアイテムについて 0 回または 1 回だけ一致します。
詳しくは、
繰り返し制御文字
を参照してください。
|
(
および
)
|
正規表現の中でグループを定義します。 グループは次の場合に使用します。
-
選択制御文字 | の適用範囲を限定する場合。例:
/(a|b|c)d/
-
繰り返し制御文字の適用範囲を指定する場合。例:
/(walla.){1,2}/
-
後方参照を使用する場合。 例えば、次の正規表現に含まれている
¥1
は、このパターン内にある最初のグループ化括弧に一致したストリングに一致します。
-
/(¥w*) is repeated: ¥1/
詳しくは、
グループ
を参照してください。
|
[
および
]
|
文字クラス(該当位置に一致可能な文字を表す集合)を定義します。
/[aeiou]/
は、角括弧内に指定したいずれか 1 つの文字に一致します。
文字クラス内でハイフン(
-
)を使用すると、文字の範囲を指定できます。
/[A-Z0-9]/
は、大文字の A ~ Z または 0 ~ 9 に一致します。
文字クラス内で ] および - をエスケープするには、
円記号を使用します。
/[+¥-]¥d+/
は、
+
または
-
とそれに続く 1 桁以上の数字に一致します。
文字クラス内では、通常メタ文字として扱われる他の文字は、メタ文字でなく一般の文字として扱われます。円記号でエスケープする必要はありません。
/[$]/
£ は、
$
または
£ に一致します。
詳しくは、
文字クラス
を参照してください。
|
|
(パイプ)
|
選択肢を示し、左側または右側のいずれかにある部分に一致します。
/abc|xyz/
は、
abc
または
xyz
に一致します。
|
メタシーケンスについて
メタシーケンスは、正規表現パターンの中で特別な意味を持つ一連の文字です。 メタシーケンスについて次の表で説明します。
メタシーケンス
|
説明
|
{
n
}
{
n
,}
および
{
n
,
n
}
|
直前のアイテムについて、繰り返し回数または回数の範囲を指定します。
/A¥{27¥}/
は、文字
A
の
27
回の繰り返しに一致します。
/A{3,}/
は、文字
A
の
3
回以上の繰り返しに一致します。
/A{3,5}/
は、文字
A
の
3
回以上
5
回以下の繰り返しに一致します。
詳しくは、
繰り返し制御文字
を参照してください。
|
¥b
|
単語構成文字とそれ以外の文字の境界となる位置に一致します。 ストリングの先頭または末尾が単語構成文字である場合は、その先頭または末尾にも一致します。
|
¥B
|
2 つの単語構成文字に挟まれた位置に一致します。 また、単語構成文字でない 2 つの文字に挟まれた位置にも一致します。
|
¥d
|
10 進数の数字 1 文字に一致します。
|
¥D
|
数字以外の任意の 1 文字に一致します。
|
¥f
|
改ページ文字に一致します。
|
¥n
|
改行文字に一致します。
|
¥r
|
復帰文字に一致します。
|
¥s
|
任意の空白文字(スペース、タブ、改行、復帰)に一致します。
|
¥S
|
空白文字以外の任意の 1 文字に一致します。
|
¥t
|
タブ文字に一致します。
|
¥u
nnnn
|
16 進数
nnnn
で指定される文字コードを持つ Unicode 文字に一致します。例えば、
¥u263a
はスマイルマークです。
|
¥v
|
垂直フィード文字に一致します。
|
¥w
|
単語構成文字に一致します(
AZ
~、
az
~、
0 ~ 9
または
_
)。
¥w
は、
é
、
ñ
、
ç
など、英語以外の文字には一致しません。
|
¥W
|
単語構成文字以外の任意の 1 文字に一致します。
|
¥¥x
nn
|
16 進数
nn
で指定される文字コードを持つ ASCII 文字に一致します。
|
|
|
|