2016-09-07 103 views
1

嗨我想从大型文本文件中只读文本,包括<?xml version="1.0" encoding="ISO-8859-1"?></Document>。 你可以说它需要文字开始于<?xml version="1.0" encoding="ISO-8859-1"?>END</Document>。表示文档中的单独XML部分。能否请你帮我在C#中提供的正则表达式正则表达式从一个文本文件开始到结尾

目前我使用下面的代码:

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

但是它现在不包括XML ......和./Document。?。

请指点

+6

明显的问题:为什么不使用XML解析器呢? – Jan

+0

你不需要使用正则表达式,使用text.IndexOf或XML解析器 – prospector

+0

从正则表达式标签:“注意:问HTML,JSON等正则表达式往往会遇到负面反应。如果有一个解析器它,用它来代替。“ – Sayse

回答

0

一些在你的正则表达式中的字符都没有逃脱,你可以使用匹配组0包括整个匹配的字符串。我已经更新了下面的示例:

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