JavaScriptの正規表現(RegExp)の基本構文と仕組みを解説
先生と生徒の会話形式で理解しよう
生徒
「先生、JavaScriptで文字列の中から特定の文字やパターンを探したいときはどうすればいいですか?」
先生
「そのときに便利なのが正規表現、英語では RegExp です。文字列の中から文字や数字、特定のパターンを簡単に見つけることができます。」
生徒
「正規表現って難しそうですが、初心者でも使えますか?」
先生
「大丈夫です。まずは基本の書き方と仕組みを理解すれば、少しずつ使えるようになりますよ。」
1. 正規表現とは?
正規表現とは、文字列のパターンを表現する特別な書き方です。例えば「数字だけ」「特定の単語を含む」「メールアドレスの形式に合う」など、複雑な文字列検索を簡単に行えます。JavaScriptでは /pattern/flags の形で記述します。
2. 基本の構文
JavaScriptの正規表現は、スラッシュで囲んで表現します。例えば文字列に「apple」が含まれるか調べる場合は次のように書きます。
const regex = /apple/;
console.log(regex.test("I like apple.")); // true
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. まとめのポイント
- 正規表現は文字列のパターンを表現するためのツール
- 基本構文は
/pattern/flagsで書く - 特殊文字やフラグを使うことで複雑な検索も簡単にできる
- 文字列の検索、置換、抽出に活用できる
- 最初は簡単なパターンから学ぶのがコツ