如何从string中删除所有的HTML标签而不知道哪些标签在里面?
有没有简单的方法来删除所有的HTML标签或任何与string相关的HTML?
例如:
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )"
以上应该是:
“绿巨人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 <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )"); string result = htmlDoc.DocumentNode.InnerText;
你可以在你的string上使用下面的代码,你会得到完整的string没有HTML部分。
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )".Replace(" ",string.Empty); string s = Regex.Replace(title, "<.*?>", String.Empty);