JavaScriptで文字列を検索する正規表現の書き方を学ぼう
先生と生徒の会話形式で理解しよう
生徒
「JavaScriptで文章の中から特定の単語や文字を探したいんですが、どうすればいいですか?」
先生
「その場合は正規表現、英語では RegExp を使います。文字列のパターンを指定して検索することができる便利な方法です。」
生徒
「正規表現って聞くと難しそうですが、初心者でも使えるんですか?」
先生
「最初は少し難しそうに見えますが、基本的な構文と使い方を押さえれば簡単です。順番に学んでいきましょう。」
1. 正規表現とは?
正規表現とは、文字列のパターンを表す特別な書き方です。例えば「数字だけ」「特定の単語を含む」「メールアドレスの形式に合う」といった条件で文字列を検索できます。JavaScriptでは /パターン/フラグ という形式で書きます。
2. 基本の書き方
文字列に特定の単語が含まれるかを調べる簡単な例を見てみましょう。
const regex = /apple/;
console.log(regex.test("I like apple.")); // true
console.log(regex.test("I like banana.")); // false
test メソッドは文字列がパターンにマッチするかどうかを true または false で返します。
3. 特殊文字と記号
正規表現では、特定の文字や数字を表すために特殊な記号を使います。
.:任意の1文字にマッチ\d:数字にマッチ\w:英数字やアンダースコアにマッチ\s:空白文字にマッチ*:直前の文字が0回以上繰り返す+:直前の文字が1回以上繰り返す?:直前の文字が0回または1回
const regex2 = /\d+/;
console.log(regex2.test("123")); // true
console.log(regex2.test("abc")); // false
4. フラグを使った検索
正規表現にはフラグをつけることで検索方法を変更できます。
g:文字列全体で複数マッチを検索i:大文字・小文字を区別しないm:複数行モードで ^ や $ が行頭・行末を意味する
const regex3 = /apple/gi;
console.log("Apple apple".match(regex3)); // ["Apple", "apple"]
5. 検索結果の取得と置換
正規表現を使うと文字列の検索だけでなく、置換や抽出も簡単にできます。
// replaceで置換
const text = "I like apple and banana.";
const replaced = text.replace(/apple/, "orange");
console.log(replaced); // I like orange and banana.
// matchで抽出
const matches = text.match(/\b\w{6}\b/g);
console.log(matches); // ["banana"]
\b は単語の境界、\w{6} は6文字の英数字にマッチすることを意味します。
6. 正規表現を使うコツ
正規表現は非常に便利ですが、複雑になると読みにくくなります。まずは簡単な検索から始め、少しずつパターンを組み合わせていくのがおすすめです。オンラインの正規表現テスターを使えば、どの文字列にマッチするか確認できるので便利です。
7. ポイントまとめ
- 正規表現は文字列のパターン検索に使える強力なツール
- 基本構文は
/パターン/フラグで書く - 特殊文字やフラグを使うことで、複雑な検索や置換も可能
- まずは簡単な例から学んで応用する
- オンラインツールでマッチを確認すると理解が早くなる