Ich habe eine Textdatei und die folgenden ist sein Inhalt:Erhalten mehrzeilige Zeichenfolge von Text-Datei in dem Block von zwei String mit regulärem Ausdruck C#
initTest
1234 567 8910
1234 567 8910
endTest
initTest
1234 567 8911
1234 567 8911
endTest
initTest
1234 567 8912
1234 567 8912
endTest
und dann muß ich die Anzahl des Blockes bekommen innerhalb von „initTest“ (Es gibt 3 Leerräume vor und nach dem Wort) und "endTest" (vor und nach dem Wort gibt es 3 Leerzeichen) und das Element des Blocks in Array X speichern. Das Ergebnis sollte X [0] = sein {"1234 567 8910 \ n 1234 567 8910"} und X.length = 3.
Ich habe versucht, indem Sie den folgenden Code in C# mit Regex, aber das Ergebnis ist keine Spiel.
string text = line;
string search = @"(^\s*initTest.*?^\s*endTest)";
MatchCollection matches = Regex.Matches(text, search, RegexOptions.Singleline | RegexOptions.IgnoreCase);
Console.WriteLine("there was {0} matches for '{1}'", matches.Count, search);
Console.ReadLine();
Ich schätze wirklich jeden Hinweis und Hilfe. Vielen Dank im Voraus.
Was ist der Inhalt von 'text', bevor Sie Ihren Regex-Test dagegen ausführen? – Jasen
@Jasen, eigentlich ist der obige Text nicht der wirkliche Fall, es ist ein vereinfachter Fall des echten. Der Inhalt der realen Textdatei, die ich habe, ist ein mehrzeiliger String. Informiere mich, wenn die Antwort nicht klar ist, bitte. – Cas