導入
量指定子は「直前の1要素」にしかかかりませんでした。「ab というかたまりを3回」のように、複数文字のまとまりを繰り返したい ときに使うのが ( ) による グループ化 です。
説明
( ) で囲むと、その中身が1つのまとまりになり、量指定子をまとめてかけられます。
パターン: (ab)+ 対象: abab abc → "abab" と "ab"(c) にマッチ(ab の繰り返し)
パターン: ab+ 対象: abbb → 比較:こちらは b だけが繰り返される
(ab)+ は「ab というまとまりの1回以上の繰り返し」です。ab+(b だけの繰り返し)との違いに注目してください。
グループは実用パターンで頻出します。
パターン: (\d{1,3}\.){3}\d{1,3} 対象: 192.168.0.1
→ IPアドレスの形(「数字.」を3回 + 数字)
(\d{1,3}\.) を {3} で3回繰り返し、最後に \d{1,3} を足すことで、IPアドレスらしい形を表現できます。グループがなければ、この「3回繰り返し」は書けません。
グループにはもう一つの役割がある
( )はまとまりを作るだけでなく、マッチした部分を 後で取り出す(キャプチャ) 役割も持ちます。これは第5章で詳しく扱います。
やってみよう
( ) は「複数の要素を1つのかたまりにする」道具。(ab)+ と ab+ の違いをおさえれば、量指定子を自在に組み合わせられます。