本文へスキップ
BecomeCoder

正規表現コース · 第4章 位置とまとまり · レッスン12

グループ化 ― ( ) で複数の要素を束ねる

ブラウザで完結

導入

量指定子は「直前の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+ の違いをおさえれば、量指定子を自在に組み合わせられます。

実際に動かしてみよう

パターン欄に正規表現を、下の「テスト文字列」欄に対象の文字列を入れると、マッチした部分がその場でハイライトされます(ブラウザ標準の正規表現エンジンで動きます)。フラグ(g/i/m/s)を切り替えたり、本文のパターンを書き換えたりして、マッチの変化を確かめながら進めましょう。

正規表現 — その場でマッチを確認

ブラウザ標準の正規表現エンジンでパターンを試せる学習用ウィジェットを読み込みます(外部エンジン不要・軽量です)。
スクロールして表示された時点でも自動で読み込まれます。