Naja, eigentlich ist Regex nicht zwingend, aber hier wahrscheinlich deutlich angenehmer zu handhaben.
Die andere Variante wäre, wenn du nicht Regex verwenden möchtest, dass du dann den String händisch zerlegst und raus suchst, was du haben möchtest. Eine Variante wäre, dass du jede Zeile via Split(':') auf teilst und das zweite Element im Ergebnis-Array ist ein Wert.
Regex finde ich hier einfach einfacher zu handhaben.
So schwer ist das auch gar nicht. Ich finde, es sieht am Anfang einfach nur extrem kompliziert und schwer aus.
Was allerdings dann wirklich schwer wird, ist z.B. ein Regex-Pattern, der prüfen soll, ob ein String eine korrekte eMail-Adresse ist. Aber da gibts auf msdn bereits ein Vorgefertigtes.
Zu dem Fehler:
Das kapier ich nicht. Ich habs so bei mir eingefügt und bekomme keinen Syntax-Fehler. Erklären kann ich mir das jetzt nicht, aber wenn er eine Instanz haben will, dann gib ihm doch einfach eine Instanz:
C#-Quelltext
1:
| var match = new Regex(patternString).Match(zeile); |
Das sollte das Gleiche tun, aber auch hier gilt: Getestet ist es nicht, ich weiß nur sicher, dass es bei mir keinen Syntax-Fehler bringt. ^^
PS:
So als kleine Idee kannst du ja einen Algorithmus schreiben, der deine Dateien einlesen und schreiben kann, ähnlich wie mit XML.
Das sollte ganz gut möglich sein, wenn du den Namen der Property und den Wert.ToString nimmst. Du kannst dann ja auch noch hin gehen und passende Attribute schreiben, die z.B. den Namen anders vor geben, vor geben, wie der Wert hin und her geparst werden soll, oder ob die Property ganz ignoriert werden soll.
Das macht die XML-Implementierung auch, sie schaut sich den Typ an, sucht sich Name und Typ raus und schreibt dann das Ganze als String, nur im XML-Format.
By the way:
Warum nimmst du nicht einfach gleich XML?
Macht ungefähr das Gleiche, bloß kann es das deutlich umfangreicher und flexibler.
Außerdem gibt es das bereits fertig implementiert im .NET-Framework. ^^