10. 括弧
メタ文字は(
と)
です。括弧の使い方は3通りあるので、それぞれ解説します。
10-1. 括弧の使い方1(量指定子と組み合わせる)
量指定子は、直前のパターンの繰り返しの量を指定するメタ文字でしたが、直前のパターンの作成を目的として、括弧を使うことができます。
たとえば、正規表現(he)+
はheheheheheにマッチし、正規表現he+
はheeeeeにマッチします。下記がサンプルです。
^AB{2,3}$
量指定子と括弧を組み合わせるサンプルです。
^(AB){2,3}$
10-2. 括弧の使い方2(選択と組み合わせる)
選択は、指定した複数パターンのいずれか1つにマッチするメタ文字でしたが、選択は括弧を越えて作用しないので、括弧を使って選択の作用先を制限することができます。下記がサンプルです。
AB|CDXX
括弧を使って選択の作用先を制限するサンプルです。
(AB|CD)XX
10-3. 括弧の使い方3(後方参照)
括弧を使って、マッチした文字を記憶することができます。「キャプチャする」と言います。\1
でキャプチャした文字列をマッチパターンとして指定できます。たとえば、文字列ababもしくは文字列cdcdにマッチする正規表現を(ab|cd)\1
と表せます。\1
で1番目の開き括弧でキャプチャした文字列を指定しているのです。
キャプチャ対象が複数ある場合、開き括弧を左から数えた時の出現順序で指定します。すなわち
- 1番目の開き括弧の中身は
\1
- 2番目の開き括弧の中身は
\2
- 3番目の開き括弧の中身は
\3
- 4番目の開き括弧の中身は
\4
- 5番目の開き括弧の中身は
\5
- 6番目の開き括弧の中身は
\6
- 7番目の開き括弧の中身は
\7
- 8番目の開き括弧の中身は
\8
- 9番目の開き括弧の中身は
\9
となります。下記がサンプルです。
^([0-9])\1
最後に
今回は、基礎的なメタ文字について解説しました。次回は、最小マッチ,肯定先読み,否定先読み,肯定戻り読み,否定戻り読み,キャプチャしない括弧について解説します。
参考資料
- 『詳説 正規表現 第3版』 Jeffrey E.F. Friedl 著、長尾高弘 訳、オライリー・ジャパン、2008年4月
正規表現を作成する際の考え方が詳細に書かれている本です。本稿で使用している正規表現の用語は、この本と同じ用語を使っています。