Hallo Michael und Poldi
if ($htmltext =~ /<a[^>]>(.*?)</a>/i)
{
my $linktext = $1;
# ... und hier die Weiterverarbeitung
}
Müsste nach [^>] nicht noch ein * hin?
Meine 'Lösung' ist nicht idiotensicher: Es könnte sein, daß jemand innerhalb des HREF-Wertes in "" eingeschlossen ein ">"-Zeichen verwendet ... :-(((
(Hoffentlich erlaubt kein Dateisystem solche Zeichen innerhalb von Dateinamen.)
Hier habe ich noch eine kompliziertere Variante:
if ($htmltext =~ /<a(\s+[a-z]+\s*=\s*("[^"]*"[^>\s]*))*\s*>(.*?)</a>/is)
{
my $linktext = $3;
# ... und hier die Weiterverarbeitung
}
Gibt es eigentlich irgendwo im
Web weiterfuehrende Literatur zu solchen Extraktionsproblemen?Mit regular expressions kann man alles machen. ;-)
Vielleicht noch ein paar Links dazu:
<../../tgcg.htm>
http://www.phy.uni-bayreuth.de/~btpa25/perl/perl_reg.html
http://www.heise.de/ix/artikel/1998/11/178/
Gruss
Andreas