SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

マンガで分かるプログラミング用語辞典

「正規表現と文字セットの否定」
~マンガでプログラミング用語解説

マンガで分かるプログラミング用語辞典(74)

解説

 正規表現は文字列のパターンを表現する方法です。検索や置換で用いられて、複雑な条件で文字列に一致させることが可能です。正規表現では、メタ文字、メタキャラクターと呼ばれる記号を使い、文字を抽象化して出現パターンを記します。

 この正規表現は、多くのプログラミング言語や、テキストエディタで利用できます。使用するプログラミング言語などの環境によって、微妙に仕様が違うので、使用前に確認が必要です。本記事では、JavaScriptの正規表現を中心に扱います(他のプログラミング言語の正規表現も、大きな差はありません)。

 今回は、その正規表現の中から、「文字セットの否定」を紹介します。文字セットは、角カッコで複数の文字を囲い、その中のいずれかの一文字を指定する、正規表現の記法です。

記述 意味
[abc] 「a」か「b」か「c」

 文字セットの否定は、角カッコと「^」で複数の文字を囲い、その中のいずれでもない一文字を指定する、正規表現の記法です。

記述 意味
[^abc] 「a」か「b」か「c」ではない

 句読点や記号以外といった、「何か以外」の文字を指定する際に便利な方法です。

サンプル

 正規表現で「文字セットの否定」を利用したコードを、JavaScriptで簡単に書いてみます。

<html>
    <head>
        <title>「文字セットの否定」のサンプル</title>
    </head>
    <body>
        <pre><script type="text/javascript">
            // 文章の「てにをは」と句読点、改行以外を「○」に置換
            var str = "吾輩は猫である。\n"
                + "名前はまだない。\n"
                + "どこで生れたか、とんと見当けんとうがつかぬ。\n"
                + "何でも薄暗いじめじめした所でニャーニャー"
                + "泣いていた事だけは記憶している。\n"
                + "吾輩はここで始めて人間というものを見た。\n"
                + "しかもあとで聞くとそれは書生という"
                + "人間中で一番獰悪な種族であったそうだ。\n"
                + "この書生というのは時々我々を捕えて"
                + "煮て食うという話である。\n";
            str = str.replace(/[^てにをは、。\n]+/g, "○");
                // 「/[^てにをは、。\n]+/g」で、
                // 「^てにをは、。\n]+」で、
                // 「てにをは」句読点、改行以外の1文字の繰り返し
                // 「g」すべて
                // という意味
            document.writeln(str);
        </script></pre>
    </body>
</html>
出力結果
○は○。
○は○。
○、○。
○て○は○て○。
○は○て○を○。
○は○。
○は○を○て○て○。
フィードバックお待ちしております!

 ご感想、解説して欲しい用語、解説内容のアドバイスなどございましたら、FacebookTwitterなどでお気軽に編集部までお寄せください。よろしくお願いいたします。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
マンガで分かるプログラミング用語辞典連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8382 2015/02/24 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー