Подтвердить что ты не робот

Как удалить все теги HTML из строки, не зная, какие теги находятся в ней?

Есть ли какой-либо простой способ удалить все теги HTML или НИЧЕГО HTML, связанные с строкой?

Например:

string title = "<b> Hulk Hogan Celebrity Championship Wrestling &nbsp;&nbsp;&nbsp;<font color=\"#228b22\">[Proj # 206010]</font></b>&nbsp;&nbsp;&nbsp; (Reality Series, &nbsp;)"

Вышеупомянутое должно быть действительно:

"Hulk Hogan Celebrity Championship Wrestling [Proj # 206010] (Серия Реальности)"

4b9b3361

Ответ 1

Вы можете использовать простое регулярное выражение:

public static string StripHTML(string input)
{
   return Regex.Replace(input, "<.*?>", String.Empty);
}

Помните, что это решение имеет свои недостатки. Подробнее см. Удалить теги HTML в String (особенно комментарии @mehaase )

Другим решением будет использование HTML Agility Pack.
Вы можете найти пример с помощью библиотеки здесь: пакет гибкости HTML - удаление ненужных тегов без удаления содержимого?

Ответ 2

Вы можете проанализировать строку с помощью Html Agility pack и получить InnerText.

    HtmlDocument htmlDoc = new HtmlDocument();
    htmlDoc.LoadHtml(@"<b> Hulk Hogan Celebrity Championship Wrestling &nbsp;&nbsp;&nbsp;<font color=\"#228b22\">[Proj # 206010]</font></b>&nbsp;&nbsp;&nbsp; (Reality Series, &nbsp;)");
    string result = htmlDoc.DocumentNode.InnerText;

Ответ 3

Вы можете использовать приведенный ниже код в своей строке, и вы получите полную строку без части html.

string title = "<b> Hulk Hogan Celebrity Championship Wrestling &nbsp;&nbsp;&nbsp;<font color=\"#228b22\">[Proj # 206010]</font></b>&nbsp;&nbsp;&nbsp; (Reality Series, &nbsp;)".Replace("&nbsp;",string.Empty);            
        string s = Regex.Replace(title, "<.*?>", String.Empty);