Felix Riesterer: Regex um <img>-Elemente mit und ohne alt-Attribut

Beitrag lesen

Lieber Jonny 5,

Mal abgesehen davon, dass regex nicht das optimale Werkzeug zum Parsen von html ist

das lese ich immer wieder, sehe im Moment aber nicht, warum ich es mir umständlicher machen sollte. Toms Hinweis auf die superleichte Parserklasse war da zwar schon ganz gut. Ich liebe Klassen, die in einer einzigen Datei notiert werden können! Mal sehen, welchen Nutzen mir das Teil noch bringen wird.

(<img alt=">"...>, nesting usw). Wenn das DEIN INPUT ist, dann weisst du ja, was du zu erwarten hast.

Solcher Input sollte ausgeschlossen sein, da HTML-Code von meinem CMS vor dem Speichern durch einen echten Parser gejagt wird, der alle < _und_ _>_ in Attributwerten als Entity notiert. Sollte mal ein per FTP hochgeladenes File in dieser Richtung eklig sein, dann stehen halt in den Suchindices "lustige Sachen" drin...

Es sollte mit einem lookahead-conditional klappen, wenn auch nicht besonders schön:

~(?is)<img(?(?=[^>]* alt="([^"]+)")).*?>~

uff! Was ein Monster! Aber hey, es funzt(tm)! Da sage ich artig "Danke"!

Beispiel zum probieren.

Herzlichen Dank! Diese Lookaheads setze ich nur sehr spärlich ein. Für ein in meinen Augen so läppisches Beispiel hatte ich erwartet, dass es solcher Geschütze nicht bedarf...

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)