私は最近、正規表現をよく調べていて、2 番目の単語が存在しない 1 つの単語の一致に関する多くの回答を見てきました。特定の単語(またはその場所のより複雑な正規表現)を正規表現で検索し、単語が欠落している場所を見つけることができる多くの正規表現の例を見てきました。
行ごとに非常にうまく機能しているように見えますが、複数行モードを含めた後でも、適切に一致していないようです。
例foo
: 単語が含まれているファイル文字列全体に一致しますが、その単語bar
はファイルにはありません。私がこれまでに持っているのは、サンプルリンク(?m)^(?=.*?(foo))((?!bar).)*$
に基づいているものです。Ruby 正規表現テスターでテストしてきましたが、それはオープンエンドの正規表現の問題/質問だと思います。小さい部分に一致するようですが、文字列全体を 1 つの大きなチャンクとして一致させる/一致させないようにしたいと考えています。
上記の例では、行単位で一致が検出されているようです。文字列全体に適用されるようにするには、正規表現にどのような変更を加える必要がありますか?
編集:正規表現を使用せずに、この問題を解決するためのより効率的な方法が他にもあることを知っています。私は他の手段を使用して問題の解決策を探しているのではなく、理論的な正規表現の観点から尋ねています。複数行モード (「機能する」ように見える) があり、行ごとに組み合わせることができる否定/肯定検索があります。