カテゴリ: JavaScript 更新日: 2026/07/21

JavaScriptの正規表現でグループ化・キャプチャを活用する方法

JavaScriptの正規表現でグループ化・キャプチャを活用する方法
JavaScriptの正規表現でグループ化・キャプチャを活用する方法

先生と生徒の会話形式で理解しよう

生徒

「JavaScriptの正規表現で複数の文字列をまとめて処理することはできますか?」

先生

「できます。グループ化を使うと、特定の部分をまとめて扱ったり、後で取り出すことができます。」

生徒

「グループ化って具体的にはどう書くんですか?」

先生

「丸括弧 ( ) を使ってグループ化します。そしてキャプチャした内容は後で参照することができます。」

1. グループ化とは?

1. グループ化とは?
1. グループ化とは?

正規表現で丸括弧 ( ) を使うと、その部分を1つの単位として扱えます。これをグループ化と言います。グループ化すると、マッチした内容を後から取り出したり、置換に利用できます。


const text = "2025-12-11";
const regex = /(\d{4})-(\d{2})-(\d{2})/;
const result = text.match(regex);
console.log(result);
/*
[
  "2025-12-11", // 全体のマッチ
  "2025",        // 1つ目のグループ(年)
  "12",          // 2つ目のグループ(月)
  "11"           // 3つ目のグループ(日)
]

この例では、日付の年・月・日をそれぞれ別のグループとしてキャプチャしています。

2. キャプチャした内容の利用

2. キャプチャした内容の利用
2. キャプチャした内容の利用

キャプチャした内容は match メソッドで配列として取り出せます。また、置換にも便利です。


const date = "2025-12-11";
const newDate = date.replace(/(\d{4})-(\d{2})-(\d{2})/, "$3/$2/$1");
console.log(newDate); // "11/12/2025"

$1$2$3 はそれぞれ1つ目、2つ目、3つ目のグループの内容に置き換わります。

3. グループ化の応用例

3. グループ化の応用例
3. グループ化の応用例

メールアドレスからユーザー名とドメインを取り出す場合もグループ化が役立ちます。


const email = "user@example.com";
const regex = /(.+)@(.+)/;
const match = email.match(regex);
console.log(match[1]); // "user"
console.log(match[2]); // "example.com"

このように丸括弧で囲むだけで、複数の部分を簡単にキャプチャできます。

4. グループ化のポイント

4. グループ化のポイント
4. グループ化のポイント
  • 丸括弧 ( ) で囲むとグループ化できる
  • キャプチャした内容は match 配列や置換で利用可能
  • 複雑な文字列の抽出や置換処理に便利
  • グループに名前をつけたい場合は (?…) のように名前付きキャプチャも使える

初心者の方はまず簡単な文字列で丸括弧を使ったキャプチャを試すことで、正規表現の強力さを実感できます。

5. 名前付きキャプチャの使い方

5. 名前付きキャプチャの使い方
5. 名前付きキャプチャの使い方

JavaScriptの正規表現では、名前付きキャプチャを使うことで、グループに分かりやすい名前を付けることができます。これにより、配列の番号ではなく名前で値を取得できるため、コードの可読性が向上します。


const text = "2025-12-11";
const regex = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const result = text.match(regex);

console.log(result.groups.year);  // "2025"
console.log(result.groups.month); // "12"
console.log(result.groups.day);   // "11"

このように、意味のある名前を付けることで、どの値がどの部分かが一目で分かるようになります。

6. 非キャプチャグループの使い方

6. 非キャプチャグループの使い方
6. 非キャプチャグループの使い方

グループ化はしたいがキャプチャは不要な場合、非キャプチャグループ (?: ) を使います。これにより、マッチングのグループとして扱いつつ、結果に含めないようにできます。


const text = "cat bat mat";
const regex = /(?:c|b|m)at/g;
const result = text.match(regex);

console.log(result); // ["cat", "bat", "mat"]

通常のグループと違い、番号での参照対象にならないため、不要なキャプチャを減らして処理をシンプルにできます。

7. グループ化と繰り返しの組み合わせ

7. グループ化と繰り返しの組み合わせ
7. グループ化と繰り返しの組み合わせ

グループ化は繰り返し指定と組み合わせることで、より柔軟なパターンを作ることができます。例えば同じパターンが複数回続く文字列を検出する場合に便利です。


const text = "abcabcabc";
const regex = /(abc)+/;
const result = text.match(regex);

console.log(result[0]); // "abcabcabc"
console.log(result[1]); // "abc"

このように、グループ化と繰り返しを組み合わせることで、複雑な文字列パターンも効率よく扱うことができます。初心者の方はまず簡単な繰り返しから試してみると理解が深まります。

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptのwindow.onloadの使い方と注意点を初心者向けに解説
New2
JavaScript
JavaScriptの条件式でよくあるエラーとその対処法まとめ
New3
TypeScript
TypeScriptの型安全なオブジェクト設計をインターフェースで実現するコツ
New4
Claude Code
Claude Codeでバグの再現手順をまとめるプロンプト例
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの比較演算子(==, ===, !=, !==)の違いを初心者向けにわかりやすく解説
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptのReact入門!最初のコンポーネントを作ろう
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptの配列の一部を切り出す(slice, spliceの使い方)
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptで要素の表示・非表示を切り替える方法(display・visibility)を完全解説
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのライフサイクルとは?ブラウザでの読み込み順序をやさしく解説