第一个核心代码是:正则表达式"<.?>"

// 示例用法:

string inputhtml = "<html><body><h1>Hello, World!</h1>This is a <b>test</b>.</body></html>";

html去掉抓取的字符C实战一行代码搞定高效移除HTML标签还原纯净文本 Angular

string plainText = RemoveHtmlTags(inputHtml);

Console.WriteLine(plainText); // 输出: "Hello, World!This is a test."

public static string RemoveHtmlTags(string html)

{

// 正则表达式用于匹配HTML标签

Regex regex = new Regex("<.?>", RegexOptions.Singleline | RegexOptions.Compiled);

// 利用正则表达式的Replace方法移除所有匹配的HTML标签

string result = regex.Replace(html, String.Empty);

return result;

}

这个正则表达式<.?>是非贪婪匹配任何以 < 开始、以 > 结束的字符串,它会尽可能少地匹配字符以找到每个HTML标签。

请把稳,虽然此方法对付大略场景可能有效,但对繁芜的HTML文档(特殊是含有嵌套标签、注释、CDATA等内容)可能不足健壮,由于它无法处理所有可能的HTML构造。

第二个核心代码是:正则表达式"<[^>]>"

public static string ExtractPlainTextFromHtml(string html)

{

// 利用正则表达式匹配所有的HTML标签

// 把稳:这个大略的正则表达式适用于大多数根本HTML构造,但可能无法处理繁芜嵌套或分外格式的HTML

Regex regex = new Regex("<[^>]>", RegexOptions.Singleline | RegexOptions.Compiled);

// 利用Replace方法去除所有匹配到的HTML标签,并返回纯文本内容

string plainText = regex.Replace(html, String.Empty);

return plainText.Trim(); // 为了得到更整洁的结果,可以对结果进行trim操作以去除多余的空缺字符

}

在这段代码中,我们定义了一个名为ExtractPlainTextFromHtml的方法,该方法利用正则表达式 <[^>]> 来查找并更换所有HTML标签。
这里的正则表达式表示任何以 < 开始、以 > 结束的非空字符串(即HTML标签),Singleline 选项使.能匹配换行符,以便跨多行搜索标签,而 Compiled 选项则是为了优化正则表达式的性能。

第二个核心代码是:正则表达式"<[^>]>"

public static string RemoveHtmlTags(string html)

{

// 正则表达式,匹配所有HTML标签

string pattern = "<[^>]+>";

// 利用Regex.Replace方法移除所有匹配的HTML标签

return Regex.Replace(html, pattern, String.Empty);

}

请把稳,此方法仅移除HTML标记,不会解析或处理嵌入在HTML中的JavaScript代码或其他非标记内容。
此外,此方法也无法处理不规范或不符合预期格式的HTML标记。
如果须要更繁芜的HTML解析或清理,您可能须要利用专门的HTML解析库,如AngleSharp或HtmlAgilityPack等。

只管上述方法对付许多大略场景已经足够有效,但在面对繁芜的HTML文档时,由于HTML本身的嵌套和分外构造,大略的正则表达式可能无法完美地解析并移除所有标签。
在这种情形下,推举利用专门为处理HTML设计的库,如HtmlAgilityPack,它可以准确地解析HTML并供应丰富的API用于提取纯文本内容。