在C#中使用正则表达式删除多个样式标记

时间:2014-08-12 09:53:53

标签: regex c#-3.0

我有以下html源代码,它包含两个样式标记,使用正则表达式,我们可以从文件中删除所有html标记,但是我们无法删除第二个样式标记的内容

<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>

C#代码

1) Regex test = new Regex(@"<[^\>]*>{}");
2) strText = test.Replace(strText, String.Empty);

输出: -

1) Expected is blank but we get P {margin-top:0;margin-bottom:0;}

2 个答案:

答案 0 :(得分:0)

  

但我也希望删除样式标记的属性/值

您可以尝试使用与之前与捕获组匹配的文本相匹配的back reference

要删除<...></...>内的所有内容,请使用以下正则表达式查找相同打开和关闭HTML标记。

                   <(\w+)[^>]*>.*<\/\1>
Captured Group 1-----^^^             ^^----- Back Reference first matched group

这是demo

答案 1 :(得分:0)

是否要删除样式标记?

<style.*?</style>

我通常不建议使用正则表达式来匹配HTML / XML,除非您确定它总是具有某种结构。有更好的工具来处理XML。