正規表現の文字クラス — \d、\w、\s とカスタムセットの完全ガイド

\d(数字)、\w(単語文字)、\s(空白)を含むすべての正規表現文字クラス、カスタムセット [abc]、範囲 [a-z]、否定クラス [^abc] を学びましょう。

Character Classes

詳細な説明

正規表現の文字クラスを理解する

文字クラスは正規表現の最も基本的な構成要素のひとつです。定義されたセットから1文字をマッチさせることで、パターンが受け入れる内容を精密に制御できます。

組み込みの短縮クラス

JavaScriptには、最も一般的なマッチングニーズをカバーする短縮文字クラスがいくつか用意されています:

短縮形 等価 マッチ対象
\d [0-9] 任意の数字
\D [^0-9] 数字以外の任意の文字
\w [a-zA-Z0-9_] 任意の単語文字
\W [^a-zA-Z0-9_] 単語文字以外の任意の文字
\s [ \t\n\r\f\v] 任意の空白文字
\S [^ \t\n\r\f\v] 空白以外の任意の文字

カスタム文字セット

角括弧でカスタムセットを定義します:[aeiou] は任意の母音にマッチします。範囲と個別の文字を組み合わせることもできます:[a-zA-Z0-9_-] は英字、数字、アンダースコア、ハイフンにマッチします。

否定文字クラス

文字クラスの先頭に ^ を置くと否定になります:[^0-9] は数字でない任意の文字にマッチします。これは括弧の外でアンカーとして使う ^ とは異なります。

ドットメタ文字

ドット . は改行を除く任意の1文字にマッチします。s(dotall)フラグを使うと改行にもマッチします。リテラルなドットが必要な場合はエスケープします:\.

実用的なヒント

  • 意図に正確に合致する場合は、可読性のために短縮形(\d\w)を使いましょう
  • 特定のサブセットにマッチさせる必要がある場合はカスタムセットを使います(例:16進数字には [a-f0-9]
  • [] の内部では、]\^- を除くほとんどのメタ文字が特殊な意味を失うことを覚えておきましょう

ユースケース

ユーザー入力を解析して、電話番号の数字、ユーザー名の英数字、または許可された特定の記号セットなど、フィールドに特定の文字のみが含まれていることを検証する必要がある場合。

試してみる — Regex Cheat Sheet

フルツールを開く