C# RegEx: Beginn und Ende eines Textes

alebec7

Ensign
Dabei seit
Juni 2008
Beiträge
154
Hi,

ich versuche aus einem string jeweils mehrere Log- Dateien heraus zu bekommen, aber es funktioniert nicht so richtig:

string pattern = "^(Error at).*^(End LogFile)";

Das Logfile beginnt mit "Error at" und Endet mit "End LogFile".

Ist der pattern so richtig?
 

achim89

Lt. Junior Grade
Dabei seit
Dez. 2007
Beiträge
393
ich bin zwar kein regex profi, aber sollte der string nicht eher so aussehen?
Code:
^(Error at).*(End LogFile)$
bzw
Code:
^(Error at).*(End LogFile)\z
 

dplaia

Cadet 3rd Year
Dabei seit
Apr. 2008
Beiträge
37
So gehts auf jeden Fall:

Code:
Regex reg = new Regex("(Error at).*(End LogFile)");
 

alebec7

Ensign
Ersteller dieses Themas
Dabei seit
Juni 2008
Beiträge
154
So gehts auf jeden Fall:

Code:
Regex reg = new Regex("(Error at).*(End LogFile)");
Ich habe es so versucht:

Code:
 Regex reg = new Regex("(Error at).*(End LogFile)", RegexOptions.Multiline |
                                  RegexOptions.Singleline | RegexOptions.IgnoreCase);
           
 MatchCollection matches = reg.Matches(text, 0);
Er hat dann aber nur den Count 1, obwohl es 2 Logs sind...
 

heady

Cadet 1st Year
Dabei seit
Dez. 2001
Beiträge
9
Regex reg = new Regex("Error at(.*)End LogFile", RegexOptions.Singleline | RegexOptions.IgnoreCase);

MatchCollection matches = reg.Matches(text);

Sind "Error at" und "End" in verschiedenen Zeilen?

Edit:

Poste doch mal etwas aus der Log-Datei, dann kann man dir besser helfen.
 
Zuletzt bearbeitet:

alebec7

Ensign
Ersteller dieses Themas
Dabei seit
Juni 2008
Beiträge
154
Regex reg = new Regex("Error at(.*)End LogFile", RegexOptions.Singleline | RegexOptions.IgnoreCase);

MatchCollection matches = reg.Matches(text);

Sind "Error at" und "End" in verschiedenen Zeilen?

Edit:

Poste doch mal etwas aus der Log-Datei, dann kann man dir besser helfen.

Error at und End sind in verschiedenen Zeilen:

Error at 13.06.2010-15:12:21 This log file : C:\Programme\test.LOG
----------------------------------------------------------------------
Calling Stack :
08: 9 - 000 Application - START
----------------------------------------------------------------------
Error description :
Severity FEHLER
GenCode 33 -> Data type error
SubSystem -> BASE
FuncSym -> SEND FuncPtr 0x006CECC1
ArgNum -> 1
Arg -> is in ArgNum -> ist Typ -> OBJECT
CanSubstitute -> NIL

----------------------------------------------------------------------
Computer name :SERVER
Operating system :

>>Daten<<

----------------------------------------------------------------------
NO VERSION INFORMATIONS
----------------------------------------------------------------------
End LogFile
 

dplaia

Cadet 3rd Year
Dabei seit
Apr. 2008
Beiträge
37
Versuchs nochmal so:

Code:
Regex reg = new Regex("Error at(.*?)End LogFile");
 

alebec7

Ensign
Ersteller dieses Themas
Dabei seit
Juni 2008
Beiträge
154
@dplaia:

Perfekt. Jetzt funktioniert's endlich!
 
Top