Vous ne devriez vraiment pas utiliser regex pour analyser html ou xml, il est impossible de concevoir une regex infaillible qui va gérer tous les cas de coin. Au lieu de cela, je suggère de trouver une bibliothèque html-parsing pour la langue de votre choix.
Cela dit, voici une solution possible en utilisant regex.
<img\s[^>]*?style\s*=\s*".*?(?<"|;)(float:.*?)(?=;|").*?"
Le « float: » sera capturé dans le seul groupe de capture là, ce qui devrait être le numéro 1.
Le regex correspond essentiellement le début d'une balise img, suivi de tout type de caractère n'est pas une parenthèse fermante un nombre de fois, suivi de l'attribut style. Dans la valeur de l'attribut style, le float: peut être n'importe où dans l'attribut, mais ne doit correspondre qu'au style float réel (ie précédé du début de l'attribut ou d'un point-virgule suivi d'un point-virgule ou de la fin de l'attribut) .
Dans quelle langue travaillez-vous? – gnarf
duplicata possible de [Pouvez-vous fournir quelques exemples de pourquoi il est difficile d'analyser XML et HTML avec une regex?] (Http://stackoverflow.com/questions/701166/can-you-provide-some-exemples-de- pourquoi-il-est-difficile d'analyser-xml-et-html-avec-un-rege) –
duplication possible de [tags ouverts RegEx match sauf tags autonomes XHTML] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-balises autonomes) –