Hallo nochmal Felix!
läppisches Beispiel hatte ich erwartet, dass es solcher Geschütze nicht bedarf...
Findest du zu großkalibrig? Nach neuerlicher Überlegung müsste es eigentlich auch so klappen, indem die optional vorangehenden [^>]*
auch in den optionalen Teil gepackt werden:
~<img(?>[^>]* alt="([^"]+)")?[^>]*>~is
Verwende hier für den optionalen Teil eine atomic group (non-capturing), die für den alt-text wiederum eine capturing-group enhält. Im Prinzip sollte anstatt der atomic group hier auch eine non-capturing group (?:
eingesetzt werden können.
Das Problem war wohl dieser Teil [^>]*?(alt="([^"]*)")?[^>]*
, bei dem die engine nicht wissen kann, dass du gerne den optionalen Teil (alt="([^"]*)")?
zwischen zwei eigentlich ja auch optionalen Stücken [^>]*
haben möchtest.
Schönen Abend,
Jonny 5