正規表現で文字列を含まない、否定の記述
今回は、正規表現における否定条件の記述方法と否定先読みについて説明します。
否定的先読みとは
?! で始まる正規表現を括弧 () で括ることにより、指定した文字列を含まないという条件(否定的先読み)でマッチングを行うことができます。また、否定的先読みの前後に別のパターンをつなげて記述することも可能です。
否定的先読みを使用した例
下記の例では否定的先読み(?!~)の前後に文頭を示す ^ と文末を示す $ をつなげて行を検索するようにしています。
〜を含まない
「abc」という文字列を含まない行にマッチする。
^(?!.*abc).*$
〜または〜を含まない
「abc」または「efg」という文字列を含まない行にマッチする。
^(?!.*(abc|efg)).*$
条件を増やしたい場合は、各単語を | で区切って追加してください。
〜で始まらない
「abc」という文字列から始まらない行にマッチする。
^(?!abc).*$
〜で終わらない
「abc」という文字列で終わらない行にマッチする。
^(?!.*abc$).*$
〜を含むが、〜を含まない
「abc」を含み、「def」を含まない行にマッチする。
^(?=.*abc)(?!.*def).*$
?= は肯定先読みを意味します。(※コードに間違いがあったため訂正しました)
まとめ
否定の条件を使用すると検索対象外を排除したマッチングが可能になります。また | や () で条件を区切って追加するとさらに検索対象を絞り込むことができます。否定の正規表現を活用してより効率的な検索を行うようにしましょう。
ポップインサイトでは、インタビューなどで得た実際の声に基づき
情報設計、UX戦略、Webサイト改善をご支援しています
ポップインサイトは、専任UXチームがお客様の一員となって伴走支援し、ユーザー起点の意思決定に貢献する「UXデザイン伴走/内製化支援(UXRO)」をご提供しています。
ビジネスの目的にあわせ、最適な調査や分析手法を提案・実施し、課題解決までサポートします。WebサイトのUX改善に課題がある方はお気軽にご相談ください。