JavaScriptの正規表現のエスケープ文字を理解しよう
先生と生徒の会話形式で理解しよう
生徒
「正規表現で特殊な記号を文字として使いたいときはどうすればいいですか?」
先生
「その場合はエスケープ文字を使います。正規表現では、*や?など特殊な意味を持つ文字を文字通りに扱うために、\\を使います。」
生徒
「なるほど、バックスラッシュを使うんですね。他にもよく使うエスケープ文字はありますか?」
先生
「はい。\\dは数字、\\wは英数字やアンダースコア、\\sは空白文字など、便利なエスケープ文字がたくさんあります。」
1. エスケープ文字とは?
正規表現には、文字そのものではなく特別な意味を持つ文字が存在します。例えば . は任意の1文字にマッチします。こうした特殊文字をそのまま文字として使いたいときに \\ を前に付けます。これを「エスケープ」と呼びます。
const text = "Price: $100";
const result = text.match(/\$/);
console.log(result); // ["$"]
ドル記号は通常、文字列の終端を意味する特殊文字なので、\\$ と書くことで文字として認識させます。
2. 数字・英数字・空白文字を表すエスケープ
便利なエスケープ文字には以下があります:
\\d:数字(0-9)\\w:英数字とアンダースコア(a-z, A-Z, 0-9, _)\\s:空白文字(スペース、タブ、改行など)
const text = "ID: A123";
const result = text.match(/\d+/g);
console.log(result); // ["123"]
ここでは \\d+ によって数字が連続する部分にマッチしています。
3. 特殊文字のエスケープ
正規表現では次のような文字も特殊文字なので、文字として使いたい場合はエスケープします:
.(任意の1文字)*(0回以上の繰り返し)+(1回以上の繰り返し)?(0回または1回)^(先頭)$(末尾){ } [ ] ( ) | \など
const text = "File name: data.txt";
const result = text.match(/data\.txt/);
console.log(result); // ["data.txt"]
ここでは \\. を使うことで、ドットを文字として扱っています。
4. エスケープ文字のまとめ方
エスケープ文字を使うポイントは以下の通りです:
- 特殊文字をそのまま文字として扱いたい場合は
\\を付ける - 数字、英数字、空白文字など便利なパターンは
\\d、\\w、\\sを使用 - 複雑な正規表現を作るときはエスケープ文字をうまく組み合わせて正確にマッチさせる
正規表現は最初は難しく感じるかもしれませんが、エスケープ文字を理解するとパターンを正確に扱えるようになります。ぜひいろいろな文字列で試してみてください。