molily: Hilfe bei regulärem Ausdruck

Beitrag lesen

Hallo,

^(\w+)\s+=\s+"?(.+?)"?$
müsste klappen, allerding sind Fälle wie
a = "bla
oder
a = bla"
nicht anständig abgedeckt...

Ja, wobei »anständig« zu definieren wäre. Die Frage ist, ob diese Fälle gültige Eingabewerte sind und welches Verhalten gewünscht ist: Sollen die " als verunglückte Delimiter oder als Teil des Wertes gesehen werden? Obige RegExp ignoriert sämtliche " an Anfang und Ende des Wertes. Je nach Konvention kann das problematisch sein oder in Ordnung.

Ich würde evtl mit nem doppelten Regex arbeiten, also z.B.
(^(\w+)\s+=\s+(.+?)$) | (^(\w+)\s+=\s+"(.+?)"$)

Das Problem davon ist, dass die erste Ausdruck immer matchen würde und die Delimiter als Teil des Wertes parsen würde. Man müsste also mit der letzten anfangen (wobei wir schon fast bei einem richtigen Parser wären, RegExps sind dafür immer nur bedingt geeignet).

Mathias