首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 正則表達式移除 HTML 標籤:一行程式碼解決

     編輯:程式設計綜合問答

問題

輸入字串包含 HTML 標籤,需提取純文字內容:

string str = "<body><b>abcdefg<html><a>連結123</a>456中文。";
// 期望輸出:"abcdefg連結123456中文。"

解決方案

string clean = Regex.Replace(str, "<[^>]*>", "");

正則解析

模式含義
<匹配左尖括號
[^>]*匹配任意非右尖括號字元(貪婪)
>匹配右尖括號

進階版本:處理跨行、註解、Script/Style 內容

// 更完整的 HTML 清理
string clean = Regex.Replace(html, 
    @"<script[^>]*>.*?</script>|<style[^>]*>.*?</style>|<!--.*?-->|<[^>]*>", 
    "", 
    RegexOptions.Singleline | RegexOptions.IgnoreCase);

效能建議

  • 預編譯正則:static readonly Regex HtmlTagRegex = new Regex("<[^>]*>", RegexOptions.Compiled);
  • 大量處理時考慮 HtmlAgilityPack 等專用解析器,正則無法正確處理巢狀/不完整 HTML

適用場景對比

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方法優點缺點適用
Regex.Replace簡潔、無依賴不處理實體編碼、巢狀標籤簡單字串清洗
HtmlAgilityPack標準解析、支援 XPath需引用 NuGet、較重生產環境、複雜 HTML
AngleSharp現代、支援 CSS Selector較新、文檔較少.NET Core 新專案