カテゴリ: JavaScript 更新日: 2026/01/09

JavaScriptの正規表現でマッチ結果を取得する方法(match, exec)

JavaScriptの正規表現でマッチ結果を取得する方法(match, exec)
JavaScriptの正規表現でマッチ結果を取得する方法(match, exec)

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

生徒

「文字列の中で特定のパターンにマッチする部分を取得したいです。JavaScriptではどうすればいいですか?」

先生

「それなら match メソッドや exec メソッドを使うと便利です。文字列から正規表現にマッチする部分を取り出すことができます。」

生徒

「matchとexec、どちらを使えばいいのか迷います。」

先生

「用途によって使い分けるのがポイントです。それぞれの特徴を見ていきましょう。」

1. matchメソッドでマッチ結果を取得

1. matchメソッドでマッチ結果を取得
1. matchメソッドでマッチ結果を取得

match メソッドは文字列から正規表現にマッチする部分を配列として取得します。基本の使い方は以下の通りです。


const text = "I have 2 apples and 5 bananas.";
const result = text.match(/\d+/g);
console.log(result); // ["2", "5"]

ここでは \d+ で数字を検索し、g フラグで文字列全体にマッチさせています。結果は配列として返ります。

2. execメソッドで順番にマッチを取得

2. execメソッドで順番にマッチを取得
2. execメソッドで順番にマッチを取得

exec メソッドは正規表現オブジェクトに対して使い、マッチした最初の部分を返します。g フラグをつけると、次の呼び出しで続きのマッチを取得できます。


const regex = /\d+/g;
let str = "I have 2 apples and 5 bananas.";
let match;
while ((match = regex.exec(str)) !== null) {
  console.log(`Found ${match[0]} at index ${match.index}`);
}
// Found 2 at index 7
// Found 5 at index 19

配列の 0 番目にマッチ文字列、index プロパティに位置情報が入っています。

3. matchとexecの使い分け

3. matchとexecの使い分け
3. matchとexecの使い分け
  • match: 文字列全体から配列でマッチを取得したいときに便利
  • exec: マッチごとの位置情報も含めて順番に取得したいときに便利

例えば文章内で複数の数字や特定の単語を探し、位置を知りたい場合は exec が役立ちます。

4. matchでキャプチャグループを使う

4. matchでキャプチャグループを使う
4. matchでキャプチャグループを使う

正規表現でグループ化した部分を取得したいときも match が便利です。


const date = "2025-12-11";
const match = date.match(/(\d{4})-(\d{2})-(\d{2})/);
console.log(match[0]); // "2025-12-11"
console.log(match[1]); // "2025"
console.log(match[2]); // "12"
console.log(match[3]); // "11"

括弧で囲った部分がキャプチャグループとして取得でき、年・月・日などを簡単に取り出せます。

5. 正規表現でマッチ結果を扱うポイント

5. 正規表現でマッチ結果を扱うポイント
5. 正規表現でマッチ結果を扱うポイント
  • マッチ結果は配列やオブジェクトとして返るので、インデックスで必要な部分を取得できる
  • フラグ g は全体検索、i は大文字小文字無視
  • execは繰り返し呼び出すと次のマッチを取得できる
  • キャプチャグループを使うと、部分的に文字列を取り出すのが簡単
  • 最初は簡単なパターンで練習してから複雑な正規表現に挑戦する

6. 注意点

6. 注意点
6. 注意点

正規表現は便利ですが、複雑になりすぎると読みにくくなります。特に exec は状態を持つので、繰り返し処理で前回の結果に注意する必要があります。まずは基本を押さえて、徐々に応用していくと理解しやすいです。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptで非同期処理を含むES6構文をテストする方法!初心者のための徹底解説
New2
TypeScript
TypeScriptの関数に型をつける方法(引数・戻り値)を初心者向けに徹底解説!
New3
TypeScript
TypeScriptのアロー関数の書き方と使い分けを完全ガイド!初心者にもわかる関数定義の新しい形
New4
JavaScript
JavaScriptの正規表現フラグ(g, i, m)の意味と活用方法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptとES6/ESNextの連携ガイド!最新機能を有効にするtarget設定
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの正規表現(RegExp)の基本構文と仕組みを解説
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptで日時の差分を計算する方法|ミリ秒・日数の応用テクニック