Esto es realmente complicado, porque las expresiones regulares se basan principalmente en hacer coincidir algo que está allí. Con el truco de la mirada, puede hacer cosas como 'encontrar A que no esté precedido/seguido por B', etc. Pero creo que la solución más pragmática para usted no sería esa.
Mi propuesta depende un poco de que tu código actual no hace las cosas demasiado locas, y es posible que tengas que afinarlo, pero creo que es una buena opción, si realmente quieres usar una búsqueda de RegEx para tu problema.
Así que lo que sugeriría sería encontrar todas las etiquetas IMG, que puede (pero no es necesario) tienen todos los atributos válidos para un elemento IMG. Si ese es un enfoque con el que puede trabajar es para que usted decida.
Propuesta:
/<img\s*((src|align|border|height|hspace|ismap|longdesc|usemap|vspace|width|class|dir|lang|style|title|id)="[^"]"\s*)*\s*\/?>/
Las limitaciones actuales son:
- Se espera que los valores de los atributos a estar delimitados por comillas dobles,
- No tener en cuenta posibles en línea * Atributos del evento,
- No encuentra elementos img con atributos 'ilegales'.
No utilizaría expresiones regulares para esto. Prefiero usar algo como el paquete de agilidad html (http://htmlagilitypack.codeplex.com/) o alguna otra biblioteca de analizador HTML. – steinar