如何在不知道其中包含哪些标签的情况下从字符串中删除所有 HTML 标签?

新手上路,请多包涵

有什么简单的方法可以从字符串中删除所有 HTML 标签或任何与 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;)"

上面真的应该是:

“绿巨人霍根的名人冠军摔跤 [项目#206010](现实系列)”

原文由 JJ. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 561
2 个回答

您可以使用这样的简单正则表达式:

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

请注意,此解决方案有其自身的缺陷。 有关更多信息,请参阅 删除字符串中的 HTML 标记(尤其是 ‘Mark E. Haase’/@mehaase 的注释)

另一种解决方案是使用 HTML Agility Pack

您可以在此处找到使用该库的示例: HTML 敏捷包 - 删除不需要的标签而不删除内容?

原文由 Bidou 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 Html Agility pack 解析字符串并获取 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;

原文由 ssilas777 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题