Font
[thread]7428[/thread]

Reguläre Ausdrücke: Wie Teil zwischen Suchstellen

Reader: 1


<< >> 3 entries, 1 page
membran
 2005-11-03 23:00
#59682 #59682
User since
2005-11-03
2 articles
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 articles
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 articles
BenutzerIn
[default_avatar]
Heißen dank, funktioniert!
<< >> 3 entries, 1 page



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