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?
 
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
 
So gehts auf jeden Fall:

Code:
Regex reg = new Regex("(Error at).*(End LogFile)");
 
Zitat von dplaia:
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...
 
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:
Zitat von heady:
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
 
Versuchs nochmal so:

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

Perfekt. Jetzt funktioniert's endlich!
 
Werbebanner
Zurück
Top