C# 除去某些HTML标记之外的所有HTML标记?

C# 除去某些HTML标记之外的所有HTML标记?,c#,parsing,asp.net-core,.net-core,asp.net-core-mvc,C#,Parsing,Asp.net Core,.net Core,Asp.net Core Mvc,我有一个要求,我需要从一大块HTML中去掉所有标记,这就是标记汤,基本上类似于: 等等 我需要去掉所有的标签,除了标签,但是对于那些标签,我需要去掉诸如style=之类的属性,并且只保留它们作为标签 我目前正在使用正则表达式剥离所有标记: 公共静态字符串StripHtmlstring输入=>Regex.Replaceinput,string.Empty 有什么办法吗 为此,我会使用定制的C库,但我在Linux上使用.Net Core,因此许多需要完整框架的库(如AngleSharp)都不适合我

我有一个要求,我需要从一大块HTML中去掉所有标记,这就是标记汤,基本上类似于:

等等

我需要去掉所有的标签,除了标签,但是对于那些标签,我需要去掉诸如style=之类的属性,并且只保留它们作为标签

我目前正在使用正则表达式剥离所有标记:

公共静态字符串StripHtmlstring输入=>Regex.Replaceinput,string.Empty

有什么办法吗


为此,我会使用定制的C库,但我在Linux上使用.Net Core,因此许多需要完整框架的库(如AngleSharp)都不适合我。

将为您提供除段落之外的所有标记。因此,您的程序可以删除此正则表达式的所有匹配项,并用空段落标记替换其余标记all pregex用于接收所有p标签

无论您做什么,@CeeMcSharpface我理解使用regex解析HTML的缺点,这不是我的目标,但我正在处理的需要解析的字符串大小有限,结构良好。我们说的是一次最多1k字节的HTML,带有正确的开始和结束标记。谢谢,如何从剩余的标记中删除所有属性,只留下空的?我特别需要删除样式属性。我对正则表达式很反感。如有必要,我可以分两步完成。如前所述,您可以将的匹配项替换为。当我将final.replace添加到我的正则表达式中时,标记没有清除属性:.replace,string.Empty。。。就像我说的,我不擅长正则表达式,我假设p和。对的你知道为什么这还没有被消灭吗?第一个正则表达式工作得很好,按照预期去掉了除标记以外的所有标记。我还需要它来保留结束标记,因为我需要使用它来设置InnerHtml,这需要正确的打开/关闭标记。删除所有匹配的,而不是,结束标记将被保留。