Hi,
ich habe einen durchaus sehr umfangreiches Daten-Format, das möglichst mit Regex in eine Objekt-Struktur parsen möchte.
Hintergrund:
Das Format kann sich auch ändern und ist leider nicht so flexibel, aktuell müsste ich bei jeder noch so kleinen Format-Änderung den Programm-Source ändern.
Daher war mein Gedanke, dass ich über ein oder mehrere Regex-Patterns das Format beschreibe und die Inhalte über fest gelegte Gruppen-Namen erreichbar mache. Diese Patterns kann ich dann nach der Kompilierung ändern.
Das Problem dabei ist aber, dass Teile der Daten mit dem selben Format sich in einer unbekannten Zahl wiederholen können, also eine Liste. Wie ich eine Liste matchen kann, weiß ich, aber gibt es eine Möglichkeit, jedes Listenelement als Wert einer hoch gezählten Gruppe zu erreichen?
Ich habe also folgenden Datensatz:
Wert1§~Wert2§~Wert§~Wert4§~Wert5
Und heraus bekommen möchte ich Wert1 bis Wert4.
Beste Grüße
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Das kannst du mit Regex Groups and Captures lösen.
Schau dir mal das zweite Beispiel zu Group.Captures an.
Ein möglicher Regex wäre beispielsweise:
(?<value>\w+)(?:§~(?<value>\w+))*
Und dann beispielsweise auf Wert an dritter Stelle (Index 2):
myregex.Match(...).Groups["value"].Captures[2].Value
beste Grüße
zommi
Hey, das funktioniert genau so wie ich mir das vor gestellt habe.
Ich hab's eingebaut und es rennt wie eine 1, auf Anhieb fehlerfrei - bisher zumindest 😄
Danke dir 😃
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.