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?
 
A

achim89

Gast
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