Poldi: Text zwischen zwei HTML-Tags

Beitrag lesen

Hi!

... und erstmal danke fuer die rege Anteilname! Dachte ich mir doch, dass eine Menge Leute da
ihren Spass dran haben werden :-)

Angenommen, ich verstehe Deine Aufgabenstellung richtig und Du hast den entsprechenden Text in einer Variablen $htmltext

Habe ich.

(das hinzukriegen ist ein anderes Problem wegen des möglichen Zeilenumbruchs in HTML),

Kommt nicht vor. Ist eine von mir selbst generierte Datei. Ich kann von gewissen Voraussetzungen
also ausgehen.

dann denke ich, Du willst diesen Wert analysieren mit dem regular expression

Ich will da eigentlich nichts analysieren sondern nur den Text herausbekommen.

if ($htmltext =~ /<a[^>]>(.*?)</a>/i)

Ist das noetig? ich weiss ja mit SICHERHEIT, dass es sich um einen Link in HTML handelt.

{
     my $linktext = $1;

Wo ist jetzt dieses $1 her?
Bezieht sich das auf den Ausdrueck in der Klammer?
Wie sieht das dann ohne If aus?

(Das "i" am Ende macht die Sache case-insensitiv wegen des "a" im Tag;

Aso.
Und wenn ich weiss, dass das a immer klein ist, dann ist das ja nicht noetig ...

das "?" macht den regular expression weniger gierig, weil Du ja mehrere Treffer haben könntest.)

Ja, ist was dran. Also mit ? gibt's dann tatsaechlich nur den ersten Treffer?!

Bedenke, daß Du damit *nur* den *ersten* Treffer innerhalb Deines Textes bekommst -

Genau das will ich!

wenn Du mehrere hast, wird es etwas aufwendiger (Rest der Zeile zwischenspeichern und Schleife drum herum).

Ja, war mir klar :-)

Meine 'Lösung' ist nicht idiotensicher: Es könnte sein, daß jemand innerhalb des HREF-Wertes in "" eingeschlossen ein ">"-Zeichen verwendet ... :-(((

Nein nein, ich kann davon ausgehen, dass das eher nicht vorkommen wird.

(Hoffentlich erlaubt kein Dateisystem solche Zeichen innerhalb von Dateinamen.)

Hm. Weiss ich jetzt auch nicht.

Gruesse und vielen Dank nochmal an alle

Poldi.