本文へスキップ
BecomeCoder

正規表現コース · 第5章 実践で使う · レッスン14

キャプチャグループ ― マッチした一部を取り出す

ブラウザで完結

導入

( ) は要素を束ねるだけでなく、囲んだ部分のマッチ結果を 番号付きで記憶 します。これを キャプチャ(capture) と呼びます。「日付にマッチさせて、年・月・日を別々に取り出す」といった処理の土台です。

説明

パターンの中の ( ) は、左のカッコが現れた順に 1, 2, 3 … と番号が振られます。マッチ全体は 0 番、各グループはその番号で取り出せます。

パターン: (\d{4})-(\d{2})-(\d{2})
対象:     2026-07-25

グループ0(全体): 2026-07-25
グループ1:         2026   ← (\d{4})
グループ2:         07     ← (\d{2})
グループ3:         25     ← (\d{2})

プログラムからは、この番号(や後述の名前)を使って各部分を受け取ります。「マッチしたかどうか」だけでなく「マッチした中身を分解して使える」のがキャプチャの価値です。

多くのエンジンでは 名前付きキャプチャ も使えます。番号の代わりに意味のある名前を付けられ、読みやすくなります。

パターン: (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
        → year=2026, month=07, day=25 のように名前で取り出せる

まとめるだけで取り出しは不要なとき 「グループ化はしたいが、キャプチャ(番号付け)は不要」なときは (?: ) と書きます。これを 非キャプチャグループ と呼び、番号を無駄に消費しないぶん意図が明確になります。例:(?:ab)+

やってみよう

( ) で囲んだ部分は番号付きで取り出せる、と覚えましょう。日付やURLを「分解して使う」場面で、キャプチャは正規表現の主役になります。

実際に動かしてみよう

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

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

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