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

JavaScriptの正規表現で多行テキストを扱うテクニック

JavaScriptの正規表現で多行テキストを扱うテクニック
JavaScriptの正規表現で多行テキストを扱うテクニック

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

生徒

「先生、JavaScriptで複数行にわたる文章から特定のパターンを探したいです。」

先生

「それなら、正規表現のmフラグや[\s\S]のようなテクニックを使うと便利です。mはマルチラインの意味で、文章全体を行ごとに検索できます。」

生徒

「具体的にはどんな書き方になるんですか?」

先生

「順番に例を見ていきましょう。」

1. mフラグで行頭・行末を扱う

1. mフラグで行頭・行末を扱う
1. mフラグで行頭・行末を扱う

通常、^は文字列の先頭、$は文字列の末尾にマッチします。しかし、mフラグを使うと各行の先頭と末尾にもマッチします。


const text = `こんにちは
JavaScript
楽しいです`;
const regex = /^JavaScript/m;
const matches = text.match(regex);
console.log(matches); // ["JavaScript"]

このように、複数行のテキストでも行頭のパターンを検出できます。

2. [\s\S]で改行を含む全体を検索

2. [\s\S]で改行を含む全体を検索
2. [\s\S]で改行を含む全体を検索

正規表現の.は通常改行文字にマッチしません。改行も含めて全体を検索したい場合は[\s\S]と書きます。\sは空白文字、\Sは空白以外の文字です。


const text = `タイトル
本文1
本文2`;
const regex = /タイトル[\s\S]*本文2/;
const matches = text.match(regex);
console.log(matches); // ["タイトル\n本文1\n本文2"]

これで、複数行にまたがる文章全体を1つのパターンとして取得できます。

3. 複数行の先頭と末尾を同時に扱う

3. 複数行の先頭と末尾を同時に扱う
3. 複数行の先頭と末尾を同時に扱う

^$mフラグと組み合わせることで、複数行の各行で条件を確認できます。


const text = `エラー: ファイルが見つかりません
警告: ディスク容量が少ない
情報: 処理が完了しました`;
const regex = /^(エラー|警告)/gm;
const matches = text.match(regex);
console.log(matches); // ["エラー","警告"]

これにより、複数行の中で特定の行だけを抽出できます。

4. replaceメソッドで複数行を一括変換

4. replaceメソッドで複数行を一括変換
4. replaceメソッドで複数行を一括変換

正規表現を使ってreplaceすると、複数行にまたがるテキストもまとめて置換できます。


const text = `JavaScript
Java
Python`;
const result = text.replace(/JavaScript/g, "JS");
console.log(result);
/*
JS
Java
Python
*/

これで複数行のテキストの中から特定の文字列を一括で変換できます。

5. 注意点とテクニック

5. 注意点とテクニック
5. 注意点とテクニック
  • 改行文字を含むパターンは[\s\S][^]を使う
  • 行頭・行末を扱う場合はmフラグを忘れずに
  • 複数行テキストでは、マッチの位置を確認する場合はexecとループを組み合わせると便利
  • 置換する場合はreplaceメソッドとgフラグを併用する

これらのテクニックを覚えると、複数行にわたる文章でも柔軟に正規表現を活用できます。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】