2013-12-22 45 views
3

如何删除字符串中的注释块。这是我想要删除的字符串的一部分。从C#中的字符串中删除注释块<!-- -->

<!-- 
[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] 

--> 
+2

的你最好添加你做了什么。 – herohuyongtao

+0

我想找到一个正则表达式来删除这段评论之间的内容。但到现在为止我还没有找到任何东西,它工作正常。 myString = Regex.Replace(myString,@“(?s)(?<= <! - )。+?(?= - >)”,“”).Trim(); – Azade

回答

3

我发现了一个正则表达式来去除这种注释块

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

简单,只要找到其中注释开始(与<!--),并在那里结束(-->)。然后在范围内删除它们。

+0

这是很多文字处理。我需要一个正则表达式或东西 – Azade

1

在这些情况下,我会建议你使用外部的lib如的“HTML敏捷性包” http://htmlagilitypack.codeplex.com/ 这是他们的CodePlex网站页面上通过的NuGet & availble的,你会在houw找到代码示例使用图书馆。

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

自己这样做,即使使用REGEX,也需要耗费大量的时间,并且一开始就会出错。看看它是这样的:不要重新发明轮子;)。

+1

谢谢。这是一个很好的图书馆。但我认为这对我的问题太过分了。我找到了一个更简单的方法,并发布为答案。 – Azade

+0

好吧,我明白,对于有限的字符串,可以通过正则表达式来完成..我假设你有一大堆场景,你指出的只是一大堆样本。在这种情况下,我猜的确实是正则表达式。 –