Thread Wieder eine lustige RegEx (9 answers)
Opened by pktm at 2008-04-22 22:09

pktm
 2008-04-22 22:09
#108754 #108754
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
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 :) )

View full thread Wieder eine lustige RegEx