Regex:Pattern Match Problem

Hallo zusammen,
ich sitz gerade an einem Problem und versteh nicht warum es nicht funzt vielleicht habt ihr ja eine Idee, folgendes:
-ich lese Dateien ein die in verschieden Teilabschnitte unterteilt ist und versuche nun diese einzeln zu extrahieren
-die eingelesene Datei liegt in einer StringCollection und nun versuch ich anhand der Schlüsselwörter die einzelnen Bereiche zu identifizieren
-Schlüsselwörter:domains,database,predicates,clauses,goal
-nun Prüfe ich mittels Regex ob in den Strings das entsprechnde Schlüsselwort vorkommt und lese solang weiter bis ein anderes Schlüsselwort auftaucht

-> dies Scheitert jedoch oft an dem finden des rxOther Pattern, also er findet kein 2.Schlüsselwort um den Bereich abzuschliessen!
Danke und ich bin über jeden Tip dankbar.

Beispiel:
*rxSearch-Pattern=@"^[clauses]{7,7}(\e)*"
*rxOther-Pattern=@"^([domains]{7,7}[^\w*])|^([database]{8,8}[^\w*])|^([predicates]{10,10}[^\w*])|^([clauses]{7,7}[^\w*])|^([goal]{4,4}[^\w*])"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
foreach (string Zeile in this.source){
if (Found == false){
if (rxSearch.IsMatch(Zeile)){
Found = true;
}
}else{
if (!rxOther.IsMatch(Zeile)){
BlockSC.Add(Zeile);
}else{
return BlockSC;
}
}
}
return BlockSC;

Hi!
Ohne dass ich genau verstanden habe, was Du machen willst, halte ich Deine RexEx-Pattern für fragwürdig.
Wenn Du etwas in eckige Klammern setzt, dann heisst das ja „ein Zeichen aus der Menge“.
„[goal]{4,4}“ findet demnach auch „aloa“, und das willst Du doch bestimmt nicht, oder?
Wenn Du genau nach dem Wort „goal“ suchen willst, dann brauchst Du da gar nichts besonderes drumrum.
Zudem könnte es noch sein, dass Dir die Eigenart der reg. Ausdrücke in die Quere kommt, normalerweise die längste passende Zeichenfolge zu suchen (Stichwort „greedy“). Wenn man das unterbinden will, kann man an Wiederholungszeichen (*,+) ein Fragezeichen anhängen, damit nicht die längste, sondern die kürzeste Zeichenkette gefunden wird.

Schau vielleicht mal hier: http://www.codeproject.com/dotnet/regextutorial.asp
Ein ganz ausgezeichnetes RegEx Tutorial.

Gruß,
Martin

also wie sieht dann ein pattern aus welches z.B. „clauses“ findet jedoch darf dahinter nur noch ein Escapezeichen kommen und bzw. das Wort muss einzeln stehen und nicht eine Kombination aus „clausesFunction“ ???
wäre für jeden Tip dankbar.

also wie sieht dann ein pattern aus welches z.B. „clauses“
findet jedoch darf dahinter nur noch ein Escapezeichen kommen
und bzw. das Wort muss einzeln stehen und nicht eine
Kombination aus „clausesFunction“ ???
wäre für jeden Tip dankbar.

Hä?
Was verstehst Du unter „Escapezeichen“?
Wenn hinter „clauses“ nicht unmittelbar ein anderes Wort folgen darf, dann entweder ein Whitespace oder gar nix mehr (also Zeilenende).
Also evtl. so:
„clauses(\s.*|$)“

Ok?

Martin