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

JavaScriptの正規表現フラグ(g, i, m)の意味と活用方法

JavaScriptの正規表現フラグ(g, i, m)の意味と活用方法
JavaScriptの正規表現フラグ(g, i, m)の意味と活用方法

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

生徒

「JavaScriptで正規表現を使うときに、フラグってよく見かけます。gやi、mって何ですか?」

先生

「フラグは正規表現の動作を変えるオプションのようなものです。g は全体検索、i は大文字小文字を無視、m は複数行モードでの検索に使います。」

生徒

「それぞれどういう場合に使うんですか?」

先生

「順番に見ていきましょう。実際にコードを使った例で理解するとわかりやすいです。」

1. gフラグ(global)で文字列全体を検索

1. gフラグ(global)で文字列全体を検索
1. gフラグ(global)で文字列全体を検索

g フラグを使うと、文字列の最初のマッチだけでなく、全体の一致する部分をすべて取得できます。


const text = "apple banana apple grape";
const result = text.match(/apple/g);
console.log(result); // ["apple", "apple"]

このように g フラグなしだと、最初の "apple" しか取得できません。全体を検索したいときは必須です。

2. iフラグ(ignore case)で大文字小文字を区別しない検索

2. iフラグ(ignore case)で大文字小文字を区別しない検索
2. iフラグ(ignore case)で大文字小文字を区別しない検索

i フラグを使うと、大文字と小文字の違いを無視して検索できます。


const text = "Apple banana APPLE grape";
const result = text.match(/apple/gi);
console.log(result); // ["Apple", "APPLE"]

大文字小文字が混在している文章でも、i フラグを付けることで一致させることができます。

3. mフラグ(multiline)で複数行の検索

3. mフラグ(multiline)で複数行の検索
3. mフラグ(multiline)で複数行の検索

m フラグは複数行モードで、文字列内の改行ごとに ^$ が行頭・行末を意味するようになります。


const text = `first line
second line
third line`;
const result = text.match(/^second/m);
console.log(result); // ["second"]

通常は文字列全体の先頭にしか ^ はマッチしませんが、m フラグをつけると各行の先頭も対象になります。

4. フラグの組み合わせ

4. フラグの組み合わせ
4. フラグの組み合わせ

複数のフラグは組み合わせることもできます。例えば、全体検索かつ大文字小文字を無視したい場合は gi と書きます。


const text = "Apple apple APPLE";
const result = text.match(/apple/gi);
console.log(result); // ["Apple", "apple", "APPLE"]

このようにフラグを組み合わせることで、より柔軟な文字列検索が可能になります。

5. フラグを活用するポイント

5. フラグを活用するポイント
5. フラグを活用するポイント
  • gフラグ: 全体を検索したいときに使用。配列で複数マッチが取得可能。
  • iフラグ: 大文字小文字の違いを無視したいときに便利。
  • mフラグ: 複数行の文字列を扱う場合に行頭・行末の検索が可能。
  • 必要に応じてフラグを組み合わせることで、効率的に文字列検索ができる。
  • まずは基本のg, i, mフラグを覚えて、文章やログ解析などで活用してみましょう。

6. 注意点

6. 注意点
6. 注意点

正規表現フラグは強力ですが、複雑な組み合わせになると挙動が予想しづらくなることがあります。特に exec や match と組み合わせるときは、どのフラグが必要かを確認してから使用すると安心です。

カテゴリの一覧へ
新着記事
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の日時操作Tips!実務で役立つテクニック集
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptとES6/ESNextの連携ガイド!最新機能を有効にするtarget設定
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
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で日時の差分を計算する方法|ミリ秒・日数の応用テクニック