Вы действительно не должны использовать регулярные выражения для анализа html или xml, невозможно разработать надежное регулярное выражение, которое будет обрабатывать все угловые случаи. Вместо этого я бы предложил найти библиотеку html-разбора для вашего языка.
Тем не менее, вот возможное решение с использованием регулярных выражений.
<img\s[^>]*?style\s*=\s*".*?(?<"|;)(float:.*?)(?=;|").*?"
"float:" будет захвачен в единственной группе захвата, которая должна быть номером 1.
Регулярное выражение в основном соответствует началу тега img, за которым следует любой тип символа, который не является закрывающей скобкой любое количество раз, за которым следует атрибут style. Внутри значения атрибута style значение float: может находиться в любом месте атрибута, но оно должно соответствовать только фактическому стилю float (т. Е. Ему предшествует начало атрибута или точка с запятой, а затем точка с запятой или конец атрибута) .