... von "baumustergleichen" Zeichenketten je Textzeile.
Hallo!
Als alles andere als ein Perl-Profi bin ich schnell mit meinem Latein am Ende. Jedoch wenn ich hierher komme, habe ich schon etliches ausprobiert.
Ich möchte für eine mit Hilfe eines Scripts generierte druckbare Version einer Seite die im Text vorkommenden Hyperlinks durch ihren lediglich fett formatierten und unterstrichenen Verweistext ersetzen. Zum Beispiel:
<a href="http://www.atomic-eggs.com/">Atomic Eggs</a> soll zu
<span class="fett_und_unterstrichen">Atomic Eggs</span> werden.
Die Datei wird zeilenweise gelesen:
open (TEXTFILE, $Pfad_zur_Datei) || print "Tja... :-)";
@TEXTLINES=<TEXTFILE>;
close (TEXTFILE);
foreach $TEXTLINES (@TEXTLINES) {
$TEXTLINES =~ s/<a(.*)href="(.*)">(.*)</a>/<span class="fett_und_unterstrichen">$3</span>/g;
print $TEXTLINES;
}
<a(.*)href... deswegen, weil hin und wieder (aber nicht immer) ein target="..." dabei ist :)
Nun, kommt nur ein Link in der Zeile vor, wird er ersetzt. Sind dagegen mehrere Links vorhanden, wird nur der letzte ersetzt, und der ganze Text zwischen dem ersten und der letzte Link verschwindet... was ja nach den von mir eingesetzten Platzhaltern logisch ist: er findet das erste <a [evtl. target] href, und ersetzt alles danach bis zum letzten vorkommenden Anführungszeichen und geschl. Klammer (">) durch $3...
Nur, wie mache ich es, dass alle "baugleichen", nur vom Ziel und Verweistext einander abweichende Hyperlinks, die in einer Zeile vorkommen, wie gewünscht ersetzt werden?
Viele Grüße aus Frankfurt/Main,
Patrick