je besoin d'un regex pour faire ce qui suit (malheureusement, il doit être une expression régulière, je ne peux le code parce qu'il fonctionne dans un produit acheté):Regex pour sélectionner toutes les balises HTML image conditionnellement à la valeur src
Je souhaite sélectionner toutes les balises d'image dans un segment de code HTML où la balise d'image ne contient pas d'attribut de classe ou, si elle contient un attribut de classe, cet attribut ne contient pas de chaîne spécifique au début. Fondamentalement, je veux dépouiller (en faisant correspondre) toutes les étiquettes d'image d'un morceau de html SAUF pour les images avec une classe particulière appliquée à eux.
Cela pourrait être deux expressions régulières séparées - Je veux juste faire correspondre - pas extraire toutes les données.
Ainsi, par exemple, disons que la classe je veux garder est appelé Jolie.
Je voudrais l'expression rationnelle au match:
<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"/>
mais pas correspondre
<img class="Pretty" src="xx"/>
<img whatever other attributes class="Pretty" src="xx"/>
<img class="Pretty subpretty" src="xx"/>
S'il est plus facile de le faire dans un regex (un pour correspondre à tous les tags d'image sans attribut de classe, et un pour faire correspondre ceux avec des attributs de classe qui ne sont pas "jolis") c'est tout à fait bien aussi.
Pouvez-vous garantir que l'attribut class (le cas échéant) est toujours avant l'attribut src? – laalto
Donc, ce produit acheté vous donne une interface pour altérer certaines sources html avec des expressions régulières, mais vous ne pouvez pas extraire le HTML pour utiliser un simple analyseur? – Svante
@myself: cette information n'est pas vraiment nécessaire - pensait à l'attribut src après le titre de la question mais la question elle-même n'en a pas besoin. – laalto