asp.net如何去掉HTML标记

本文介绍了几种有效的C#方法来去除HTML源代码中的标签及特殊字符,确保纯文本内容的准确提取。通过正则表达式匹配,这些方法能够处理各种HTML元素,并还原清晰的文本信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. ///<summary>
  2. ///去除HTML标记
  3. ///</summary>
  4. ///<paramname="NoHTML">包括HTML的源码</param>
  5. ///<returns>已经去除后的文字</returns>
  6. publicstaticstringNoHTML(stringHtmlstring)
  7. {
  8. //删除脚本
  9. Htmlstring=Regex.Replace(Htmlstring,@"<script[^>]*?>.*?</script>","",RegexOptions.IgnoreCase);
  10. //删除HTML
  11. Htmlstring=Regex.Replace(Htmlstring,@"<(.[^>]*)>","",RegexOptions.IgnoreCase);
  12. Htmlstring=Regex.Replace(Htmlstring,@"([/r/n])[/s]+","",RegexOptions.IgnoreCase);
  13. Htmlstring=Regex.Replace(Htmlstring,@"-->","",RegexOptions.IgnoreCase);
  14. Htmlstring=Regex.Replace(Htmlstring,@"<!--.*","",RegexOptions.IgnoreCase);
  15. Htmlstring=Regex.Replace(Htmlstring,@"&(quot|#34);","/"",RegexOptions.IgnoreCase);
  16. Htmlstring=Regex.Replace(Htmlstring,@"&(amp|#38);","&",RegexOptions.IgnoreCase);
  17. Htmlstring=Regex.Replace(Htmlstring,@"&(lt|#60);","<",RegexOptions.IgnoreCase);
  18. Htmlstring=Regex.Replace(Htmlstring,@"&(gt|#62);",">",RegexOptions.IgnoreCase);
  19. Htmlstring=Regex.Replace(Htmlstring,@"&(nbsp|#160);","",RegexOptions.IgnoreCase);
  20. Htmlstring=Regex.Replace(Htmlstring,@"&(iexcl|#161);","/xa1",RegexOptions.IgnoreCase);
  21. Htmlstring=Regex.Replace(Htmlstring,@"&(cent|#162);","/xa2",RegexOptions.IgnoreCase);
  22. Htmlstring=Regex.Replace(Htmlstring,@"&(pound|#163);","/xa3",RegexOptions.IgnoreCase);
  23. Htmlstring=Regex.Replace(Htmlstring,@"&(copy|#169);","/xa9",RegexOptions.IgnoreCase);
  24. Htmlstring=Regex.Replace(Htmlstring,@"&#(/d+);","",RegexOptions.IgnoreCase);
  25. Htmlstring.Replace("<","");
  26. Htmlstring.Replace(">","");
  27. Htmlstring.Replace("/r/n","");
  28. Htmlstring=HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
  29. returnHtmlstring;
  30. }
  31. ///提取HTML代码中文字的C#函数
  32. ///<summary>
  33. ///去除HTML标记
  34. ///</summary>
  35. ///<paramname="strHtml">包括HTML的源码</param>
  36. ///<returns>已经去除后的文字</returns>
  37. usingSystem;
  38. usingSystem.Text.RegularExpressions;
  39. publicclassStripHTMLTest{
  40. publicstaticvoidMain(){
  41. strings=StripHTML("<HTML><HEAD><TITLE>中国石龙信息平台</TITLE></HEAD><BODY>faddfs龙信息平台</BODY></HTML>");
  42. Console.WriteLine(s);
  43. }
  44. publicstaticstringStripHTML(stringstrHtml){
  45. string[]aryReg={
  46. @"<script[^>]*?>.*?</script>",
  47. @"<(///s*)?!?((/w+:)?/w+)(/w+(/s*=?/s*(([""'])(//[""'tbnr]|[^/7])*?/7|/w+)|.{0})|/s)*?(///s*)?>",
  48. @"([/r/n])[/s]+",
  49. @"&(quot|#34);",
  50. @"&(amp|#38);",
  51. @"&(lt|#60);",
  52. @"&(gt|#62);",
  53. @"&(nbsp|#160);",
  54. @"&(iexcl|#161);",
  55. @"&(cent|#162);",
  56. @"&(pound|#163);",
  57. @"&(copy|#169);",
  58. @"&#(/d+);",
  59. @"-->",
  60. @"<!--.*/n"
  61. };
  62. string[]aryRep={
  63. "",
  64. "",
  65. "",
  66. "/"",
  67. "&",
  68. "<",
  69. ">",
  70. "",
  71. "/xa1",//chr(161),
  72. "/xa2",//chr(162),
  73. "/xa3",//chr(163),
  74. "/xa9",//chr(169),
  75. "",
  76. "/r/n",
  77. ""
  78. };
  79. stringnewReg=aryReg[0];
  80. stringstrOutput=strHtml;
  81. for(inti=0;i<aryReg.Length;i++){
  82. Regexregex=newRegex(aryReg[i],RegexOptions.IgnoreCase);
  83. strOutput=regex.Replace(strOutput,aryRep[i]);
  84. }
  85. strOutput.Replace("<","");
  86. strOutput.Replace(">","");
  87. strOutput.Replace("/r/n","");
  88. returnstrOutput;
  89. }
  90. }

  1. 写一个静态方法
  2. 移除HTML标签
  3. #region移除HTML标签
  4. /**////<summary>
  5. ///移除HTML标签
  6. ///</summary>
  7. ///<paramname="HTMLStr">HTMLStr</param>
  8. publicstaticstringParseTags(stringHTMLStr)
  9. {
  10. returnSystem.Text.RegularExpressions.Regex.Replace(HTMLStr,"<[^>]*>","");
  11. }
  12. #endregion
  13. 取出文本中的图片地址#region取出文本中的图片地址
  14. /**////<summary>
  15. ///取出文本中的图片地址
  16. ///</summary>
  17. ///<paramname="HTMLStr">HTMLStr</param>
  18. publicstaticstringGetImgUrl(stringHTMLStr)
  19. {
  20. stringstr=string.Empty;
  21. stringsPattern=@"^<img/s+[^>]*>";
  22. Regexr=newRegex(@"<img/s+[^>]*/s*src/s*=/s*([']?)(?<url>/S+)'?[^>]*>",
  23. RegexOptions.Compiled);
  24. Matchm=r.Match(HTMLStr.ToLower());
  25. if(m.Success)
  26. str=m.Result("${url}");
  27. returnstr;
  28. }
  29. #endregion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值