次のことを行うには正規表現が必要です(残念ながら、正規表現でなければなりません)。Regexは、src値の条件付きですべてのイメージhtmlタグを選択します
イメージタグにクラス属性が含まれていないhtmlのチャンク内のすべてのイメージタグを選択するか、クラス属性が含まれている場合はその属性に先頭に特定の文字列が含まれないようにしたいとします。基本的には、特定のクラスが適用されているイメージのHTML以外の部分から、すべてのイメージタグを削除(マッチング)します。
これは2つの別個の正規表現にすることができます。
たとえば、私が保持したいクラスはPrettyと言いましょう。
私は正規表現がマッチしたい:、
<img src="xx"/>
<img border="x" src="xx"/>
<img whatever other attributes src="xx"/>
<img class="ugly" src="xx"/>
<img whatever other attributes class="fugly" src="xx"/>
をしかし、それは、クラス属性を持たないすべての画像タグを一致させるために(1つの正規表現でいずれかを実行する方が簡単ならない
<img class="Pretty" src="xx"/>
<img whatever other attributes class="Pretty" src="xx"/>
<img class="Pretty subpretty" src="xx"/>
と一致し、 1つはクラスの属性に「きれいでない」と一致するもの)ですが、それはまったく問題ありません。それはそれは何だと
class属性(もしあれば)がsrc属性の前に常にあることを保証できますか? – laalto
この購入した製品は、正規表現でいくつかのhtmlソースをmangleするためのインターフェイスを提供しますが、htmlを抽出して単純なパーサーを使用することはできません。 – Svante
@myself:この情報は本当に必要ではありません。質問のタイトルの後にsrc属性を考えていましたが、質問自体には何も必要ありません。 – laalto