正規表現を使って「〜以外」をマッチさせてみる
  • facebookページ
  • twitterページ
  • 2018.03.12

    正規表現を使って「〜以外」をマッチさせてみる

    正規表現は、文字・文字列のパターンを表現するものです。これをプログラミング時に使用することで、欲しい文字列を検索する時に強力な方法として採用されています。今回は、マッチ(検索)させることに対して否定の要素を加え、マッチするものを除外する方法を紹介します。

    特定の1文字以外を含まない文字列の正規表現

    []を使用すると、囲まれた文字にマッチさせることが出来ます。これに否定・除外の意味を持つ^(キャレット)を使用することで、「指定した文字を含まない」表現が出来ます。

    例)
    ^[A]

    [マッチする例]
    B
    C
    D

    特定のパターン以外の文字列の正規表現

    指定した文字を含まない

    この場合も、上記の[]を使って書くことができます。

    例)
    [正規表現]
    [^ABCDEF]

    [マッチする例]
    G
    HIJ

    指定した文字列を含まない1行を検索する

    ^(?!.*文字列).+$
    上記の文字列の箇所に指定した文字(文字列)を含まない1行を検索出来ます。

    例)
    ^(?!.*ABC).+$
    「ABC」という文字列を含まない行を検索します。

    指定した複数の文字列を含まない1行を検索する

    ^(?!.*(文字列|文字列)).+$
    文字列を|(パイプ)で繋げることで、複数の文字列を除外することが出来ます。

    例)
    ^(?!.*(ABC|XYZ)).+$
    「ABC」または、「XYZ」という文字列を含まない行を検索します。

    指定した文字列から開始しない1行を検索する

    ^(?!文字列).+$
    文字列の部分から開始しない行を検索することが出来ます。

    例)
    ^(?!ABC).+$
    「ABC」という文字列から始まらない行を検索します。

    指定した文字列で終わらない1行を検索する

    ^(?!.*文字列$).+$
    文字列で終了しない行を検索することが出来ます。

    例)
    ^(?!.*ABC$).+$
    「ABC」で終了しない行を検索します。

    ~は含むが、~は含まない1行を検索する

    ^(?!.*文字列1).*(?=文字列2).*$
    文字列2は含むが、文字列1は含まない1行を検索することが出来ます。

    例)
    ^(?!.*ABC).*(?=XYZ).*$
    「XYZ」という文字列を含み、ABCという文字列は含まない行を検索します。

    まとめ

    正規表現は、「何かにマッチする」「あてはまる」「含む」ようなイメージを持ってしまう人も多いのですが、それを逆手に取って「除外」する方向でマッチさせる方が、すっきりした書き方・表現になることもあります。最初は慣れるのに時間がかかるかもしれませんが、「マッチする表現」から「除外する」を導く書き方を想像できるようになると、効率的で分かりやすくなることも多いので、少しずつ試してみましょう。


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE