C#中去除HTML标签的正则表达式方法
在C#处理Web数据或用户输入时,常需从带有HTML标记的字符串中提取纯净文本。本文将展示如何使用正则表达式(Regex)高效移除所有HTML标签。
核心逻辑与目标
目标是保留文本内容,删除所有以 < 开头、> 结尾的HTML标签部分。这通常用于防止XSS攻击或简单化显示富文本内容。
第1步:引入命名空间
目的:使用正则表达式的核心类库。
入口:文件头部
动作:添加 using System.Text.RegularExpressions;
参数:无
第2步:构建正则表达式
目的:准确识别所有可能的HTML标签。
入口:方法内部
动作:创建 Regex 实例,匹配模式为 @"<[^>]+>|</[^>]+>"
重要参数:
- <[^>]+>:匹配开始标签(如 <div>)
- |:或运算符
- </[^>]+>:匹配闭合标签(如 </div>)
完成状态:regex 对象就绪。
第3步:执行替换并返回结果
目的:清洗原始字符串。
入口:使用 Regex.Replace 方法
动作:strOutput = regex.Replace(strHtml, "");
可观察结果:输入的 HTML 字符串被转换为不含任何标签的纯文本字符串。
完整代码实现
/// <summary>
/// 除去所有在HTML元素中标记
/// </summary>
public static string StripHTML(string strHtml)
{
string strOutput = strHtml;
// 使用正则表达式匹配所有开标签和闭标签
Regex regex = new Regex(@"<[^>]+>|</[^>]+>");
// 将其替换为空字符串
strOutput = regex.Replace(strOutput, "");
return strOutput;
}
注意事项
该方法基于简单的模式匹配,对于标准的HTML结构非常有效。但如果需要处理复杂的嵌套或残缺HTML,建议结合更专业的HTML解析库(如 HtmlAgilityPack)以确保准确性。以上就是C#中利用正则表达式去除HTML标签的详细内容,更多关于C#字符串处理与数据清洗的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









