本文へスキップ
BecomeCoder

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

否定の文字クラス ― [^ ] で「それ以外」

ブラウザで完結

導入

文字クラスの先頭に ^ を置くと、意味が反転して「ここに挙げた文字以外 のどれか1文字」になります。「〜ではないもの」を指定したいときに使います。

説明

[^ ] は「カッコ内に挙げた文字を 除く 任意の1文字」です。

パターン: [^0-9]
対象:     a1b2
マッチ:   [a]1[b]2  ← 数字でない文字(a と b)にマッチ

パターン: "[^"]*"
対象:     彼は"こんにちは"と言った
マッチ:   ["こんにちは"]  ← ダブルクォートで囲まれた中身を取り出す定番パターン

[^"] は「ダブルクォート以外の任意の1文字」で、"[^"]*" は「クォートで始まり、クォート以外が続き、クォートで終わる」=引用符で囲まれた部分をまるごと捕まえる、実務でよく出るパターンです(* は次章で学びます)。

^ の位置に注意 ^角カッコの内側の先頭 にあるときだけ「否定」の意味になります。[a^b] のように途中にあると、ただの ^ という文字として扱われます。また、行頭を表す ^(第4章)とは別物なので混同しないようにしましょう。

やってみよう

[^ ] は除外」と覚えましょう。[^0-9] は「数字以外」、[^ ](スペースを1つ入れる)は「空白以外」を表します。

実際に動かしてみよう

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

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

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