JavaScript 速習チュートリアル

JS 正規表現:メタ文字

1. 正規表現のメタ文字(Metacharacters)とは

メタ文字(Metacharacters)は、正規表現において特別な意味を持つ文字です。
これらを使用することで、数字、単語、空白などの複雑なパターンを簡単に指定し、マッチングさせることができます。

// 単語(Word)にマッチさせる
const pattern = /\w/;

2. JavaScript 正規表現メタ文字一覧

(2025年7月改訂版)

メタ文字説明
\d数字(Digits)にマッチします。
\D数字以外の文字にマッチします。
\w英数字およびアンダースコア(alphanumeric Word characters)にマッチします。
\W英数字およびアンダースコア以外の文字にマッチします。
\s空白文字(Spaces)にマッチします。
\S空白文字以外の文字にマッチします。
\ddd8進数 ddd で指定された文字にマッチします。
\xhh16進数 hh で指定された文字にマッチします。
\uhhhh16進数 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);