agapanthus: Regulärer Ausdruck gesucht

Beitrag lesen

Moin.

Ich habe einen Sring (hier im Beispiel ein ganz kurzer, in Wirklichkeit ists eine ganze HTML-Seite in einer Zeile):

$content = '<img src="images/pic01.jpg">';

Jetzt soll die URL des Bildes ergänzt werden um http://www.domain.de, das funktioniert mit den nächsten Zeilen:

$url = "http://www.domain.de/";
$content =~ s/src*=*"/src="$url/sg;

Soweit geht es gut. Jetzt die Ausnahne: wenn der String an der Stelle bereits die komplette URL ('<img src="http://www.domain.de/images/pic01.jpg">') enthält, dann soll nicht ersetzt werden. Wie muß der reguläre Ausdruck ergänzt werden, um diesen Fall auszuschließen? Das ^ kann bei Zeichenklassen zur Verneinung genutzt werden. Damit geht folgendes:

$content =~ s/src*=*"([^htp])/src="$url$1/sg;

Nachteil: Strings, die nach dem "src =" ein h oder t oder p haben, werden auch nicht angefasst: '<img src="high/images/pic01.jpg">' Außerdem muß die Zeichenklasse geklammert werden und am Ende mit $1 dieses Zeichen wieder eingefügt werden.

Ideen sind herzlich willkommen...

Danke, Gruß Frank