Schrift
[thread]7428[/thread]

Reguläre Ausdrücke: Wie Teil zwischen Suchstellen

Leser: 1


<< >> 3 Einträge, 1 Seite
membran
 2005-11-03 23:00
#59682 #59682
User since
2005-11-03
2 Artikel
BenutzerIn
[default_avatar]
Hi,

ich hänge gerade an einem simplen Problem:

Ich habe einen beliebig langen String. In diesem stehen HTML Tags. Jetzt hat zB ein HTML Tag die Form <span class="test">XXXX</span>.

Wie kann ich nun mittels PERL den XXXX Abschnitt in eine extra Variable Speichern? Ich habs mit regular expressions probiert, aber ich raff nicht den Teil mit Anfangs- Endwert und dem beliebigen Teil dazwischen.

Thx!
Dubu
 2005-11-03 23:34
#59683 #59683
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Wenn dieser String echtes HTML ist, dann schlage ich CPAN:HTML::Parser oder CPAN:HTML::TreeBuilder vor. Wenn es kein echtes HTML ist, muesste man schon genau wissen, wie genau dein "Beispiel" auf alles das passt, was du tatsaechlich suchst.
(HTML ist nicht regulaer und laesst sich deshalb nur schlecht mit regulaeren Ausdruecken parsen.)

Ein sehr simpler Ansatz, der sehr strikt auf dein Beispiel zugeschnitten ist, koennte so aussehen:
Code: (dl )
1
2
3
if ($str =~ m~<span class="test">(.*?)</span>~) {
   print "Im Bereich test steht $1.\n";
}

Das Fragezeichen sorgt dafuer, dass der kuerzeste String bis zum naechsten "</span>" gesucht wird. Das Muster schlaegt also schon fehl, wenn ein weiteres "<span>...</span>" in dieses geschachtelt ist, kaeme aber mit anderen HTML-Tags innerhalb des <span> klar.
membran
 2005-11-04 02:42
#59684 #59684
User since
2005-11-03
2 Artikel
BenutzerIn
[default_avatar]
Heißen dank, funktioniert!
<< >> 3 Einträge, 1 Seite



View all threads created 2005-11-03 23:00.