Hallo Alex,
Fuer eine Druckansicht waere es praktisch, wenn man die Links (also <a href="link">beschreibung</a>) irgendwie separat herausfiltern und in Klammern dahinterstellen koennte, da Papier nicht unbedingt Links versteht... ;)
[...]
Ich habe das (in einem String mehrmals):
<a href="link">beschreibung</a>
und moechte das:
beschreibung (Link: link)
Da man sich immer unter Namenskollegen helfen sollte ;-), hab` ich mich mal Deines Problems angenommen und folgendes entwickelt:
in $content steht die HTML-Datei
$content =~ s/
<a(.*?) #beliebige zeichen vor href
href="(.*?)" #finde href und zugehörige url
(.*?)> #restliche Attribute innerhalb von <a>
(.*?) #Das ist der Linktext
</a> #Ende des Links
/
$&. #gefundener String (der alte Klumbatsch ;-)
#Alternativ $4 falls Du nur den Linktext benötigst
" (Link: ".$2. #Ausgabe der Link-url (2. Klammer)
&GetAttributes($1). #übrige Attribute vor href filtern
&GetAttributes($3).")" #Attribute nach href filtern
/seigx;
Analysiert String nach auf Attribute und gibt Attribut-Wert-Paare zurück
sub GetAttributes {
my $in = shift;
my $out = "";
#Attribut und Werte finden und aneinanderhängen
while ($in =~ /(\w+)=("')(.*?)\2/sig) {
$out .= ", ".$1.": ".$3;
}
return $out;
}
Ich hoffe das ganze tut (tuttut ;-) was Du möchtest :-) Allerdings müssen die Werte der Attribute alle in Anführungszeichen stehen.
Gruß AlexBausW