MudGuard: Reguläre Ausdrücke

Beitrag lesen

Hi,

preg_replace("!<a href="(.*)">!i","{ersetzen}",$str);

Da dürfte Dir klar sein warum: nach dem '<a href="' wird bis zum letzten '">' der Zeile gesucht und alles dazwischen gematcht.

preg_replace("!<a href="(.*?)">!i","{ersetzen}",$str);

Das Fragezeichen sorgt nur dafür, daß die kürzeste Möglichkeit gefunden wird.
Bei '<a href="bla" target="bla">' ist aber 'bla" target="bla' die kürzeste Möglichkeit.
Es würde genausoviel matchen, wenn da '<a href="bla" target="bla"><img src="blubb" alt="">' stünde.

preg_replace("!<a href="[^"]*">!i","{ersetzen}",$str);
Nach dem '<a href="' beliebig viele Zeichen außer einem ", gefolgt von ">

cu,
Andreas

--
Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/