文字クラスエスケープ: \d, \D, \w, \W, \s, \S

文字クラスエスケープは、文字の集合を表すエスケープシーケンスです。

構文

regex
\d, \D
\s, \S
\w, \W

メモ: , is not part of the syntax.

解説

文字エスケープとは異なり、文字クラスエスケープは、文字クラスのように、事前に定義された文字の集合を表します。以下の文字クラスに対応しています。

\d

いずれかの数字に一致します。[0-9] と同等です。

\w

任意の単語文字に一致します。単語文字には文字 (A-Z, a-z)、数字 (0-9)、アンダースコア (_) が含まれます。正規表現が Unicode 対応i フラグが設定されている場合、大文字小文字の折りたたみによって上記の文字のいずれかに正規化される他の Unicode 文字にも一致します。

\s

任意のホワイトスペースまたは改行文字に一致します。

大文字形式の \D\W\S は、それぞれ \d\w\s の補集合文字クラスを作成します。これらは、小文字形式が一致する文字の集合にない任意の文字に一致します。

Unicode 文字クラスエスケープは˶\p および \Pで始まりますが、Unicode 対応モードでのみ対応しています。Unicode 非対応モードでは、これらは p または P 文字の識別子エスケープです。

文字クラスエスケープは文字クラスで使用することができます。しかし、文字範囲の境界として使用することはできません。これはウェブの互換性のための非推奨構文としてのみ認められており、頼ってはいけません。

ホワイトスペースでの分割

次の例は、文字列を単語の配列に分割します。すべての種類のホワイトスペース区切り文字に対応しています。

js
function splitWords(str) {
  return str.split(/\s+/);
}

splitWords(`Look at the stars
Look  how they\tshine for you`);
// ['Look', 'at', 'the', 'stars', 'Look', 'how', 'they', 'shine', 'for', 'you']

仕様書

Specification
ECMAScript Language Specification
# prod-CharacterClassEscape

ブラウザーの互換性

BCD tables only load in the browser

関連情報