Как получить все внутри HTML-тега BODY (из строки), используя RegEx Asp.net C # - PullRequest
2 голосов
/ 18 февраля 2010

{Да, выше более или менее это объясняет}:)

Regex oRegex = new Regex("<body.*?>(.*?)</body>", RegexOptions.Multiline);

Вышеуказанное не работает, если в теле есть какие-либо атрибуты.

Ответы [ 3 ]

9 голосов
/ 18 февраля 2010

С помощью HTML Agility Pack (при условии, что это html, а не xhtml):

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
string body = doc.DocumentNode.SelectSingleNode("/html/body").InnerHtml;
4 голосов
/ 18 февраля 2010

Не используйте регулярные выражения. Используйте то, что предназначено для анализа XML / HTML:

XmlDocument.SelectSingleNode("//body").InnerXml;

Загрузите вашу строку в XmlDocument , используйте функцию SelectSingleNode (которая принимает выражение XPath в качестве параметра), затем извлеките то, что вам нужно из в результате XmlNode .

0 голосов
/ 18 февраля 2010

Я решил это в конечном итоге, используя RegexOptions.Singleline вместо RegexOptions.Multiline

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...