luti: regex

Beitrag lesen

Hallo,

das "leidige" Thema reguläre Ausdrücke ... aber ich komme einfach nicht weiter. Ich möchte in einem langen Text (html-Code) die externen Links herausfiltern. Soweit mein Ansatz:

$site = preg_replace('#<a[^<>]*href="http://[^<>]*>(.*)</a>#is', '$1', $site);

Nun funktioniert das nicht bei mehr als einem Link, da im (.*)-Teil keine schließenden Link-Tag abgefangen werden. Daher habe ich etwas in der der Art geschrieben, funktioniert aber leider nicht:

$site = preg_replace('#<a[^<>]*href="http://[^<>]*>[^(</a>)]+</a>#is', '$1', $site);

Was ich also will, ist etwas wie beliebig viele Zeichen außer dem Term "</a>". Wo liegt der Fehler? Wie schreibe ich es richtig?

Dank & Gruß,
luti