C#中去除HTML标签的正则表达式方法

今天早睡
今天早睡
发布时间:2026-10-13 | 5人浏览过
原创

在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#字符串处理与数据清洗的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表