正規表現については、PHPやJavaScript等でよく使うので過去の記事でも度々取り上げていますが、文章中に「〇〇と××が両方共に含まれる」と言った表現をする、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.- Original:https://minory.org/regexp-and.html
- Source:Minory
- Author:管理者