サイトアイコン IT NEWS

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

regexp-and

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

(件数:7)
タグ 「正規表現」 - Minory

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

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

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

りんご|みかん|ばなな

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

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

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

正規表現にいて、複数のパターンのうち「いずれか、または」を意味する「OR」を表現する方法についてです。 正規表現での「OR(または)」の記述方法 正規表現で「複数のパターンのうち、いずれか」といった論理和を表す「OR(または)」を記述するには、大きく2つの方法があります。 「|(パイプ)」を利用した OR の表現 文字クラスを利用した OR の表現 それでは、順番に詳しく見ていきます。 「|(パイプ)」を利用した OR の表現 もっとも基本的な OR の表現は、メタ文字「|(パイプ)」を利用した表現です。候補となる複数の...
正規表現での、OR(いずれか、または)の表現方法 | WWWクリエイターズ - www-creators.com

AND(かつ)条件の書き方

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

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

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

正規表現で、論理積「AND」の条件、すなわち「かつ」を表す表現方法についてまとめました。 正規表現の「AND(かつ)」の表現 正規表現において、複数のパターンの論理積「AND」、すなわち「A、かつB」といったパターンの並列表現はややトリッキーです。初学者にはややハードルが高いかもしれませんが、記事後半に解説を加えておきましたので、よくわからない方はご一読下さい。 〇〇を含む、AND(かつ)、〇〇を含む AND(かつ)条件の例として、リテラル(=ただの文字)のマッチを考えてみます。下記は、「ラーメンを含む、かつ、カ...
正規表現:AND(かつ)の表現方法 | WWWクリエイターズ - www-creators.com

上記のように書くと、次のような文章があった場合に正規表現パターンマッチします。
ばななまんのものまねをするりんごちゃんとみかんはおもしろい

変な文章・・・。

正規表現の確認方法

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

Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java. Features a regex quiz & library.
regex101: build, test, and debug regex - regex101

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

ぜひ、お試しあれ!

The post 正規表現のAND(かつ)条件の書き方はOR(または)条件より複雑!? first appeared on Minory.

モバイルバージョンを終了