正規表現については、PHPやJavaScript等でよく使うので過去の記事でも度々取り上げていますが、文章中に「〇〇と××が両方共に含まれる」と言った複数条件を表現をする、AND(かつ)条件を意識したことがありませんでした。
そこで今回は、OR条件とAND条件の書き方の違いと、書いた正規表現のテスト方法をご紹介します。
AND(かつ)条件の書き方
早速、本題のAND(かつ)条件の書き方から説明します。
AND条件では、検索したい文字列の前後に様々な記号がくっ付いてきます。
以下は「りんご」かつ「みかん」かつ「ばなな」の複数の文字列にマッチする条件を検索します。
1 |
^(?=.*りんご)(?=.*みかん)(?=.*ばなな).*$ |
書き方としては、「^」で始まり「.$」で終わる。
その間に「(?=.文字列)」を条件に一致させたい文字列分を複数つなげて書く感じですね。
私はこの記号が何を意味するかは参考サイトをご覧くださいw
上記のように書くと、次のような文章があった場合に正規表現のパターンにマッチします。
ばななまんのものまねをするりんごちゃんとみかんはおもしろい
変な文章・・・。
OR(または)条件の書き方
AND(かつ)条件と比較するために、おまけとしてOR条件の書き方をサクッと紹介しておきます。
OR条件は以下のように複数の検索文字列を「|(パイプ)」で繋ぐだけ!
1 |
りんご|みかん|ばなな |
こちらは「りんご」または「みかん」または「ばなな」のいずれかの文字列を1つ以上含む場合にマッチします。
とても分かりやすくて簡単ですね!
例えば、以下のような文章があった場合に、この正規表現のパターンにマッチします。
しりとりんごりらっぱんだちょうしまうまっこうくじらいおん
詳しくはこちらを参考に。
正規表現の確認方法
最後に、正規表現が正しく設定されているを確認するためのツールを紹介して終わります。
「regex101.com」というサイトがあります。
英語サイトなのでちょっと分かり難いかもしれませんが、確認する方法は簡単です。
- [REGULAR EXPRESSION]の項目に正規表現のパターンを入力
- [TEST STRING]にマッチさせたい文字列を入力
- 右側の[MATCH INFORMATION]に結果が表示される
- マッチした文字列は「TEST STRING」にも網掛けで表示される
ぜひ、お試しあれ!
コメント