JS 正規表現:メタ文字
1. 正規表現のメタ文字(Metacharacters)とは
メタ文字(Metacharacters)は、正規表現において特別な意味を持つ文字です。
これらを使用することで、数字、単語、空白などの複雑なパターンを簡単に指定し、マッチングさせることができます。
// 単語(Word)にマッチさせる
const pattern = /\w/;2. JavaScript 正規表現メタ文字一覧
(2025年7月改訂版)
| メタ文字 | 説明 |
|---|---|
| \d | 数字(Digits)にマッチします。 |
| \D | 数字以外の文字にマッチします。 |
| \w | 英数字およびアンダースコア(alphanumeric Word characters)にマッチします。 |
| \W | 英数字およびアンダースコア以外の文字にマッチします。 |
| \s | 空白文字(Spaces)にマッチします。 |
| \S | 空白文字以外の文字にマッチします。 |
| \ddd | 8進数 ddd で指定された文字にマッチします。 |
| \xhh | 16進数 hh で指定された文字にマッチします。 |
| \uhhhh | 16進数 hhhh で指定されたUnicode文字にマッチします。 |
3. RegExp \d (数字) メタ文字
\d メタ文字は、0から9までの数字にマッチします。
使用例:
文字列内にあるすべての数字をグローバル検索します。
let text = "Give 100%!";
const pattern = /\d/g;
// マッチした結果を配列で取得
let result = text.match(pattern);4. RegExp \D メタ文字
\D メタ文字は、数字以外のすべての文字にマッチします。
使用例:
文字列内にある数字以外の文字をグローバル検索します。
let text = "Give 100%!";
const pattern = /\D/g;
// 数字以外の文字(スペースや記号を含む)を取得
let result = text.match(pattern);5. RegExp \w (単語構成文字) メタ文字
\w メタ文字は、単語構成文字(Word characters)にマッチします。
これには、アルファベット(a-z, A-Z)、数字(0-9)、およびアンダースコア(_)が含まれます。
使用例:
文字列内にあるすべての単語構成文字をグローバル検索します。
let text = "Give 100%!";
const pattern = /\w/g;
// 記号(%や!)以外の英数字とアンダースコアを取得
let result = text.match(pattern);6. RegExp \W メタ文字
\W メタ文字は、単語構成文字以外のすべての文字にマッチします。
使用例:
文字列内にある非単語構成文字をグローバル検索します。
let text = "Give 100%!";
const pattern = /\W/g;
// スペース、%、! などがマッチします
let result = text.match(pattern);7. RegExp \s (空白文字) メタ文字
\s メタ文字は、スペース、タブ、改行などの空白文字(Whitespace characters)にマッチします。
使用例:
文字列内にあるすべての空白文字をグローバル検索します。
let text = "Is this all there is?";
const pattern = /\s/g;
// 単語間のスペースを取得
let result = text.match(pattern);8. RegExp \xhh (16進数指定)
\xhh は、16進数 hh によって指定された文字にマッチします。
使用例:
文字列内にある16進数コード 6F(小文字の "o")をすべて置換します。
let text = "Visit Google. Hello World!";
let pattern = /\x6F/g;
// 全ての "o" を "*" に置換
let result = text.replace(pattern, "*");9. RegExp \uhhhh (Unicode 16進数指定)
\uhhhh は、16進数 hhhh で指定されたUnicode文字にマッチします。
使用例:
Unicodeの16進数コード 0057(大文字の "W")をグローバル検索します。
let text = "Visit Google. Hello World!";
const pattern = /\u0057/g;
// 文字列内の "W" を抽出
let result = text.match(pattern);