我需要完全删除给定HTML代码的所有样式标记。我发现下面的regex与XML中的整个样式标记匹配。对于在线regex测试程序中给定的Html代码,它工作得很好。

*style\s*=\s*('|")[^\2]*?\2([^>]*)*

然而,通过C代码,它对给定的HTML不起作用。
以下是C代码:
Regex regex = new Regex("style\\s*=\\s*('|\")[^\\2]*?\\2([^>]*)", RegexOptions.IgnoreCase);

最佳答案

Regex应该是

 style\s*=\s*('|")[^\1]*\1

尽管我会使用Htmlagilitypack
   HtmlDocument doc = new HtmlDocument();
   doc.Load(yourStream);
   var elementsWithStyleAttribute = doc.DocumentNode.SelectNodes("//@style");
   foreach (var element in elementsWithStyleAttribute)
   {
       element.Attributes["style"].Remove();
   }
   doc.Save();

关于c# - 删除HTML中的样式标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19333446/

10-14 16:41
查看更多