从C#中的字符串中删除注释块<! - - >

时间:2013-12-22 09:47:02

标签: c# regex string

如何删除字符串中的注释块。这是我要删除的字符串的一部分。

<!--
[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:*    {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]

-->

3 个答案:

答案 0 :(得分:4)

我找到了一个正则表达式来删除这种评论块

myString = Regex.Replace(myString , @"(?s)(?<=<!--).+?(?=-->)", "")

答案 1 :(得分:1)

简单,只需找到评论开始的位置(<!--)和结束位置(-->)。然后在范围内删除它们。

答案 2 :(得分:1)

在这些情况下,我建议您使用外部库,例如“Html Agility Pack” http://htmlagilitypack.codeplex.com/ 它可以通过NuGet&amp; amp;在他们的codeplex页面上,你会在houw上找到使用该库的代码示例。

它将使您能够在C#中加载html模型。通过这种方式,你可以提取你不需要的东西,或者操纵某些标签等等。甚至,例如在你的情况下,在html-doc中提取注释。我没有针对您的案例的确切代码段,但您可以使用此库快速完成它。

即使使用REGEX,您自己这样做也会花费大量时间实施,并且最初会出错。看看它是这样的:不要重新发明轮子;)。