Thread Wieder eine lustige RegEx
(9 answers)
Opened by pktm at 2008-04-22 22:09
Liebe alle!
ich würde gerne eine Zeile einer Datei, die wie folgt aufgebaut ist: Code: (dl
)
my $line = "bellt [VVFIN person=3 number=sg mood=ind tense=pres]"; in ihre Bestandteile zerlegen. Der Part attr=val kann beliebig oft vorkommen, und soll eine Attribut-Wert-Matrix ergeben. Jetzt könnte ich mir das einfach machen, und getreu meines Wissensstandes zuerst das Wort, POS und den Teil mit den AW-Paaren ausfiltern, und dann die Attribute zerlegen, aber das wäre ja langweilig und vor allem - von anderen lesbar. Nein, viel lieber würde ich das alles in einer einzigen großen RegEx unterbringen. Hier mein Ansatz: Code: (dl
)
my ($wort, $pos, %attrs) = $line =~ m/^(\w+)\s+\[(\w+)(?=\s)(?:\s+([^=]+)=([^=]+))*\]$/g; Aber ich erwische immer nur das letzte Attribut-Wert-Paar. Ich will aber alle. Weis wer Rat? Grüße, pktm http://www.intergastro-service.de (mein erstes CMS :) )
|