Logdatei mit Regex auslesen

-H-T-P-

Mitglied
Hallo,

ich möchte eine Logdatei auslesen die ungefär so aussieht:
Code:
1 Text
2 Text
    Detailslkjflskdjflkjdglkjgfff
    läölgädflögädlög
3 Text
4 Text
    Detailsöälälgdfäglödf
    ölfkgödflgkdöllöd
    ödlgkdöflgk

Ein Eintrag besteht aus der Nummer, den dahinterstehenden Text und die optionalen Zeilen die drunter stehen.

Regex müsste mir jedes einzelne Element in einer Gruppe speichern, damit ich es später mit C# weiterverwenden kann.

Der Anfang könnte so aussehen:
Code:
(?<number>\d+)\s+(?<text>\w+)

Jetzt ist nur die Frage wie ich die optionalen Zeilen auslesen kann.

Könnt ihr mir weiterhelfen?
 

-H-T-P-

Mitglied
Das habe ich auch schon überlegt, aber da kann ich ja nur versuchen den nächsten Eintrag zu suchen; das funktioniert aber nicht beim Letzten.
 

-H-T-P-

Mitglied
Das hat mir schon weitergeholfen.

Muss leider zugeben, dass ich bei den Beispiel oben bisschen faul war.
Die Nummer ist ein Datum und die anderen Texte können auch Zahlen beinhalten.

Zum Beispiel:
Code:
01.01.2014 Das ist der 1.Test!$?
02.01.2014 Überschrift !$?
    Irgendein "komischer"
    Text mit Sonderzeichen und Zahlen 12345!
03.01.2014 Text
04.01.2014 Foo===
    Irgendein "komischer"
    Text mit Sonderzeichen und Zahlen 12345!

Folgendes Regex habe ich jetzt, was auch funktioniert:
Code:
(?<date>\d+.\d+.\d+.\d+)\s(?<title>.*?)\r(?<message>.*?)((?=(\d+.\d+.\d+.\d+))|$)

Wenn du eine elegantere Lösung kennst, immer her damit. ;-)

Ansonsten vielen Dank für deine Hilfe!
 

Spyke

Premium-User
Ich hätte einfach die Datei Zeilenweise ausgelesen und geprüft ob die Zeile mit einem Datum beginnt.
Datum = Ja -> neue Gruppe
Datum = Nein -> gehört zur vorherigen Gruppe