{Да, выше более или менее это объясняет}:)
Regex oRegex = new Regex("<body.*?>(.*?)</body>", RegexOptions.Multiline);
Вышеуказанное не работает, если в теле есть какие-либо атрибуты.
С помощью HTML Agility Pack (при условии, что это html, а не xhtml):
HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html); string body = doc.DocumentNode.SelectSingleNode("/html/body").InnerHtml;
Не используйте регулярные выражения. Используйте то, что предназначено для анализа XML / HTML:
XmlDocument.SelectSingleNode("//body").InnerXml;
Загрузите вашу строку в XmlDocument , используйте функцию SelectSingleNode (которая принимает выражение XPath в качестве параметра), затем извлеките то, что вам нужно из в результате XmlNode .
Я решил это в конечном итоге, используя RegexOptions.Singleline вместо RegexOptions.Multiline
RegexOptions.Singleline
RegexOptions.Multiline