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