正規表現は対象の文字列に対して左から右へマッチするパターンです。ほとんどの文字はパターン内ではその文字自身を意味し、対象内の対応する文字にマッチします。
正規表現の強みは、パターン内に代入と繰り返しを含むことができるという点にあります。それらは、それ自身を意味せずに特殊な解釈をされるメタ文字の使用によって、パターン内にエンコードされます。
メタ文字には2種類あります。角括弧内を除くパターン内のどこでも使用できるものと、角括弧内でのみ使用できるものです。角括弧の外でのメタ文字は以下のとおりです。
表記
|
値
|
\
|
複数の用途を持つ一般的なエスケープ文字
|
^
|
検索対象(複数行内では行)の始まりを言明
|
$
|
検索対象(複数行内では行)の終わりを言明
|
.
|
改行以外の全ての文字にマッチ(デフォルト)
|
[
|
文字クラス定義の開始
|
]
|
文字クラス定義の終了
|
|
|
選択枝の開始
|
(
|
サブパターンの開始
|
)
|
サブパターンの終了
|
?
|
(の意味を拡張
または量指定子。直前の表現の0回または1回の繰り返し。
または最小量指定子。
|
*
|
0 量指定子。直前の表現の0回以上の繰り返し。
|
+
|
1 量指定子。直前の表現の0回以上の繰り返し。
または「独占的量指定子」
|
{
|
最小/最大を指定する量指定子の開始
|
角括弧内のパターンの一部は「文字クラス」と呼ばれます。文字クラスの中でメタ文字として扱われるのは以下のものだけです。
表記
|
値
|
\
|
一般的なエスケープ文字
|
^
|
先頭にある場合のみ、後に続く文字クラスを否定
|
-
|
文字の範囲を指定
|
[
|
POSIX文字クラス(POSIX構文が後に続いた場合のみ)
|
]
|
文字クラスの終了
|
|