正規表現のAND(かつ)条件の書き方はOR(または)条件より複雑!?

regexp-andテクノロジー

正規表現については、PHPJavaScript等でよく使うので過去の記事でも度々取り上げていますが、文章中に「〇〇と××が両方共に含まれる」と言った表現をする、ANDかつ)条件を意識したことがありませんでした。

そこで今回は、OR条件とAND条件の書き方の違いと、書いた正規表現テスト方法をご紹介します。

OR(または)条件の書き方

本題に行く前に、OR条件の書き方をサクッと紹介しておきます。
OR条件は以下のように「|パイプ)」で繋ぐだけ!

りんご|みかん|ばなな

こちらは「りんご」か「みかん」か「ばなな」のいずれかの文字列を1つ以上含む場合にマッチします。
とても分かりやすくて簡単ですね!
例えば、以下のような文章があった場合に、この正規表現パターンマッチします。

しりとりんごりらっぱんだちょうしまうまっこうくじらいおん

詳しくはこちらを参考に。

AND(かつ)条件の書き方

本題のAND条件は、前後に様々な記号がくっ付いてきます。

^(?=.*りんご)(?=.*みかん)(?=.*ばなな).*$

書き方としては、「^」で始まり「.$」で終わる。
その間に「(?=.
文字列)」を条件に一致させたい文字列分を複数つなげて書く感じですね。
私はこの記号が何を意味するか説明できませんので、参考サイトをご覧くださいww

上記のように書くと、次のような文章があった場合に正規表現パターンマッチします。

ばななまんのものまねをするりんごちゃんとみかんはおもしろい

変な文章・・・。

正規表現の確認方法

最後に、正規表現が正しく設定されているを確認するためのツールを紹介して終わります。
regex101.com」というサイトがあります。

英語サイトなのでちょっと分かり難いかもしれませんが、確認する方法は簡単です。
まず、「REGULAR EXPRESSION」の項目に正規表現パターンを入力し、「TEST STRING」にマッチさせたい文字列を入力します。
すると、右側の「MATCH INFORMATION」に結果が表示されます。
また、マッチした文字列は「TEST STRING」にも網掛けで表示されます。
ぜひ、お試しあれ!

東京生まれ福岡育ちの文系プログラマー。
テクノロジーの恩恵を感じながら日々精進しています。
広く浅くをモットーに、最近ではプログラミングだけでなく、仮想サーバーからセキュリティ、監視システムなども勉強中です。

管理者をフォローする

コメント

タイトルとURLをコピーしました