正規表現の強力さは、パターン中に選択肢や繰り返しを記述できることに あります。選択肢や繰り返しは、メタ文字 (meta-character) を使ってパターン中に記述します。メタ文字は、 その文字自体を表わさず、代わって特別な解釈が行われます。
メタ文字には、2 種類あります。ひとつは、角カッコ内を除き、 パターン中のどこででも使用できる文字です。もうひとつは、 角カッコで括られた中でだけ使用できる文字です。
前者の角カッコ外で使用できるメタ文字には、次のものがあります。
| メタ文字 | 説明 |
|---|---|
| \ | 多目的に使う一般的なエスケープ文字 |
| ^ | 検索対象(複数行モードでは行)の始まりを言明 |
| $ | 検索対象の終わりあるいは終端の改行文字の前(複数行モードでは行の終わり)を言明 |
| . | 改行を除くすべての文字にマッチ(デフォルト時) |
| [ | 文字クラス定義の開始 |
| ] | 文字クラス定義の終了 |
| | | 選択枝の開始 |
| ( | サブパターンの開始 |
| ) | サブパターンの終了 |
| ? |
( の直後の最初の文字として使った場合は、
キャプチャしないグループ、名前付きサブパターン、言明、
オプション設定といった特殊な構文の開始を表します。
量指定子として使った場合は、省略可能であることを表します
({0,1} と同じ)。
また、貪欲な量指定子を非貪欲な量指定子に変えます
(繰り返し を参照)。
|
| * | 0 回以上の繰り返し |
| + | 1 回以上の繰り返し |
| { | 最小/最大を指定する量指定子の開始 |
| } | 最小/最大を指定する量指定子の終了 |
| Meta-character | Description |
|---|---|
| \ | 一般的なエスケープ文字 |
| ^ | クラスの否定。ただし、文字クラスの最初の文字に用いた場合のみ |
| - | 文字の範囲の指定 |