【ハウツー】

ゼロからはじめる正規表現 秀丸編 - 複数の対象にマッチさせる その2

1 マッチしない文字を検索する

    阿久津良和  [2008/11/05]

    前回の記事で、メタ文字で囲んだ文字列の"いずれかのひとつ"を意味し、何文字あろうとマッチ対象として扱われる「[](ブラケット)」を紹介しましたが、一部訂正致します。ブラケット内で使用できるメタ文字は限られており、「^(キャレット)」「$(ドルマーク)」はブラケット外でお使いください。

    マッチしない文字列を対象とする

    さて、前回の記事では、「在る」「有る」両方にマッチさせるため、「[在有]」と表記しましたが、逆にマッチしない文字列を選択する場合は先ほど訂正させて頂いたメタ文字を使います。「月光」「月夜」「月足」という文字列がある状態で「[夜光]$」と検索すると、前者ふたつがマッチ対象となり、キャレットで囲んだ「夜」「光」を持たない「月足」は含まれません。

    正規表現

    検索:[夜光]$

    Target

    月光
    月夜
    月足
    

    Search Result

    月光
    月夜
    

    また、検索対象としてマッチしない文字列をキャレットで囲うこともできます。先と同じ文字列がある状態で「月[^夜光]」と検索すれば、マッチするのは「夜」「光」を持たず、「月」が前にある文字列「月足」のみとなります。ここでポイントとなるのは、キャレットの位置。否定を意味するキャレットは「[(左ブラケット)」の直後に入れなければなりません。たとえば「月[夜^光]」と検索しても、キャレットは単純な文字列として扱われるため、「月^」もマッチ対象に含まれてしまいます。

    正規表現

    検索:月[^夜光]

    Target

    月光
    月夜
    月足
    

    Search Result

    月足
    
    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

      新着記事

      特別企画

      マイナビニュースマガジン