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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.