2016-09-07 5 views
1

Hallo Ich möchte nur Text einschließlich <?xml version="1.0" encoding="ISO-8859-1"?> bis </Document> aus einer großen Textdateien lesen. Sie können sagen, dass es Text benötigt Beginnen Sie mit<?xml version="1.0" encoding="ISO-8859-1"?> und ENDE mit </Document>. Trenne einen separaten XML-Teil aus dem Dokument. Könnten Sie mir bitte helfen, ich folgenden Code verwenden Regex in C#Regex Anfang bis Ende einer Textdatei

Derzeit zu bieten:

if (text.Contains("<?xml")) 
{ 
    foreach (Match match in Regex.Matches(text, @"(?s)<?xml(.*?)</Document>")) 
    Console.WriteLine(match.Groups[1].Value); 
    Console.ReadKey(); 
} 

aber es ist jetzt nicht mit xml ... und ./Document.?.

Bitte Rat

+6

Die offensichtliche Frage: warum verwenden Sie nicht stattdessen einen XML-Parser? – Jan

+0

Sie müssen nicht regex verwenden, verwenden Sie text.IndexOf oder einen XML-Parser – prospector

+0

Von der Regex-Tag: "HINWEIS: Fragen nach HTML, JSON, etc. Regexen neigt dazu, mit negativen Reaktionen getroffen werden. Wenn es einen Parser für Verwenden Sie das stattdessen. " – Sayse

Antwort

0

Einige der Charaktere in Ihrem Regex nicht entgangen sind, und Sie können Match der Gruppe 0, um den vollständigen angepassten String verwenden. Ich habe Ihr Beispiel unten aktualisiert:

foreach (Match match in Regex.Matches(text, @"(?s)\<\?xml(.*)</Document>")) 
{ 
    Console.WriteLine(match.Groups[0].Value); 
} 
Verwandte Themen