Hello Christian,
$pattern = '#<(a|area)\s[^>]*href=("|')?(?<!javascript:)(.*)\2.*>#Ui';
Du hast eine Lookbehind-Assertion, Du willst aber eine Lookahead-Assertion. Dein alter Pattern endet nämlich beim Quote-Zeichen, d.h. (?<!javascript:) vergleicht, ob der String 'href="' (+ noch die paar Zeichen, die davor kommen) NICHT gleich 'javascript' ist, was immer wahr ist.
Du willst eine Lookahead-Assertion, weil Du ja wissen willst, ob das, was NACH der Position kommt, 'javascript:' ist. Also (?!javacript:) statt (?<!javascript:).
Vielen herzlichen Dank.
Also DIE Logik muss man erstmal verstanden haben.
So funktioniert es nun endlich. *puhhh*
Dein Posting werde ich mir wohl noch ein paarmal durchlesen, um es mir zu merken :-)
Harzliche Grüße vom Berg und Frohe Weihnachtszeit
Tom
Nur selber lernen macht schlau
