本文へスキップ
BecomeCoder

正規表現コース · 第2章 文字にマッチする · レッスン6

定義済み文字クラス ― \d \w \s の省略記法

ブラウザで完結

導入

「数字」「英数字」「空白」はあまりによく使うので、短い書き方が用意されています。これを 定義済み文字クラス(ショートハンド)と呼びます。[0-9] と毎回書く代わりに \d と書けます。

説明

代表的なものは次の3つと、その大文字版(否定)です。

記法意味ほぼ同じ意味の文字クラス
\d数字1文字[0-9]
\w英数字とアンダースコア1文字[a-zA-Z0-9_]
\s空白文字(スペース・タブ・改行など)1文字[ \t\r\n]
\D数字 以外 1文字[^0-9]
\W英数字とアンダースコア以外1文字[^a-zA-Z0-9_]
\S空白 以外 1文字[^ \t\r\n]

小文字が「それ」、大文字が「その否定」という対応です。

パターン: \d\d\d          対象: 電話は080です  → "080" にマッチ
パターン: \w              対象: a_1 @         → a,_,1 にマッチ(@ はしない)
パターン: \d\s\d          対象: 3 5           → "3 5"(数字・空白・数字)にマッチ

これらを文字クラスの中に入れることもできます。[\d.] なら「数字またはピリオド」という1文字を表せます。

\d は本当に [0-9] か? エンジンの設定によっては、\d が全角数字や他言語の数字にもマッチすることがあります。「半角数字だけ」を厳密に指定したいときは、あえて [0-9] と書くほうが確実な場面もあります。まずは \d ≒ 数字 と覚えて問題ありません。

やってみよう

\d(数字)・\w(英数字)・\s(空白)の3つと、大文字がその否定になること ―― この対応を覚えると、パターンがぐっと短く書けるようになります。

実際に動かしてみよう

パターン欄に正規表現を、下の「テスト文字列」欄に対象の文字列を入れると、マッチした部分がその場でハイライトされます(ブラウザ標準の正規表現エンジンで動きます)。フラグ(g/i/m/s)を切り替えたり、本文のパターンを書き換えたりして、マッチの変化を確かめながら進めましょう。

正規表現 — その場でマッチを確認

ブラウザ標準の正規表現エンジンでパターンを試せる学習用ウィジェットを読み込みます(外部エンジン不要・軽量です)。
スクロールして表示された時点でも自動で読み込まれます。