導入
文字クラスの先頭に ^ を置くと、意味が反転して「ここに挙げた文字以外 のどれか1文字」になります。「〜ではないもの」を指定したいときに使います。
説明
[^ ] は「カッコ内に挙げた文字を 除く 任意の1文字」です。
パターン: [^0-9]
対象: a1b2
マッチ: [a]1[b]2 ← 数字でない文字(a と b)にマッチ
パターン: "[^"]*"
対象: 彼は"こんにちは"と言った
マッチ: ["こんにちは"] ← ダブルクォートで囲まれた中身を取り出す定番パターン
[^"] は「ダブルクォート以外の任意の1文字」で、"[^"]*" は「クォートで始まり、クォート以外が続き、クォートで終わる」=引用符で囲まれた部分をまるごと捕まえる、実務でよく出るパターンです(* は次章で学びます)。
^の位置に注意^は 角カッコの内側の先頭 にあるときだけ「否定」の意味になります。[a^b]のように途中にあると、ただの^という文字として扱われます。また、行頭を表す^(第4章)とは別物なので混同しないようにしましょう。
やってみよう
「[^ ] は除外」と覚えましょう。[^0-9] は「数字以外」、[^ ](スペースを1つ入れる)は「空白以外」を表します。