Suche den perfekten regulären Ausdruck in C# für escaped Parameter

OP #7790345
Lesenswert?

Ich versuche jetzt mal mein Problem auf den Kern zu bringen und den Rest so weit wie möglich zu vereinfachen.

Ich möchte aus einer Zeile wie

1
HURZ '42';

das Argument 42 extrahieren und ausserdem testen, ob auch der Rest stimmt.

Das Argument darf auch leer sein.

Bis hierhin bin ich bei

1
@"^HURZ '(?<arg>[^']*);$"

Aber : das Argument soll auch ' enthalten dürfen. Dafür wird einfach ein \ davor gesetzt. Auch das \ soll im Argument vorkommen dürfen. Dazu wird es verdoppelt, also zu \

1
HURZ '4\'2';

4'2 bekomme ich ja auch noch hin. Dagegen könnte ja auch ein

1
HURZ '42\\';

42
kommen.

Fällt Euch was ein, was man da nehmen könnte, was genau die erlaubten Fälle durchlässt und sonst nix ?

OP #7790559
Lesenswert?

Jetzt, wo ich's sehe, ist es ganz einfach. Ich hatte versucht, kein Hochkomma oder Hochkomma mit Escape zuzulassen, dass ist aber der Holzweg, weil es bei meinem letzten Beispiel Mist baut.

Das mit dem Lexer werde ich mir auch mal in Ruhe anschauen, um das ganze flexibler zu machen. Momentan liest es nur Dateien nach dem festen Schema ein, das ist schonmal viel wert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren