如何从string中删除所有的HTML标签而不知道哪些标签在里面?

有没有简单的方法来删除所有的HTML标签或任何与string相关的HTML?

例如:

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

以上应该是:

“绿巨人Hogan的名人冠军搏斗[Proj#206010](现实系列)”

你可以使用这样一个简单的正则expression式:

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

请注意,这个解决scheme有其自身的缺陷。 有关更多信息,请参阅删除string中的HTML标记 (尤其是@mehaase的注释)

另一个解决scheme是使用HTML Agility Pack 。
你可以在这里find一个使用库的例子: HTML敏捷包 – 删除不需要的标签而不删除内容?

您可以使用Html Agility packparsingstring并获取InnerText。

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

你可以在你的string上使用下面的代码,你会得到完整的string没有HTML部分。

 string title = "<b> Hulk Hogan's 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);