特定の文字列を照合しようとしていますが、それがいくつかの特定のリテラル文字列の一部ではない場合に限ります。リテラル文字列<span class='highlight'>
とに該当する結果を除外したいと思います</span>
。したがって、「light」、「high」、「pan」、「an」などを検索する場合、これら2つのリテラルの一部ではない他の出現箇所と一致させたいと思います。
私は完全なHTMLを解析しようとはしていません。リストされているのは、これら2つの文字列だけで、変更されることはありません。クラス値は「ハイライト」から変更されることはありません。
思いつく限りのマナー、キャプチャーグループ、非キャプチャーグループなどを試しましたが、何も思いつきませんでした。ルックアラウンドが機能していないようです。除外されるケースに対する文字列の位置が特定の順序であることが保証されていないため、私は賭けています。
これは正規表現だけで可能ですか?
おっと、私は自分の質問を適切に単純化していると思いましたが、それは私が間違っていたことがわかりました。文字列を取得し、検索語のリストで正規表現の置換を行うコードを継承しました<span class="highlight"></span>
。一度に1つずつループし、一致するものをでラップします。その結果、「光」を検索すると、「光を見て」のようなフレーズが正しく表示されなくなりました。「the」が一致して置き換えられ、次に「light」が一致しましたが、「the」の新しく置き換えられたタグと一致します。秘訣は、個々の単語で実行された正規表現を修正することではなく、すべてを一緒に処理する正規表現に変更することでした。を使用して正規表現を置き換えるのではなく、を使用してthe
、light
正規表現をthe|light
。にする必要がありました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加