Hallo Patrick,
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.
[...]
$TEXTLINES =~ s/<a(.*)href="(.*)">(.*)</a>/<span class="fett_und_unterstrichen">$3</span>/g;
print $TEXTLINES;
}
Vergiss nicht, dass .* "greedy" ist. Es trifft
immer auf den laengsten moeglichen String. Besser
als der obere waere eher der hier:
$line =~ s~<a[^>]+href="[^"]+"[^>]*>([^<]+)</a>~<span class="fett_und_unterstrichen">$1</span>~sg;
Oder, falls im Link-Text auch Tags vorkommen
duerfen:
$line =~ s~<a[^>]+href="[^"]+"[^>]*>(.+?)</a>~<span class="fett_und_unterstrichen">$1</span>~sg;
Das Fragezeichen hinter dem Plus macht den Ausdruck
"ungreedy" statt "greedy". Naeheres zu den
Stichworten "greedy" und "ungreedy" erfaehrst du
auf http://perldoc.com/.
Gruesse,
CK
Die Stärke des Geistes ist unendlich, die Muskelkraft dagegen ist begrenzt.