如何删除字符串中的注释块。这是我想要删除的字符串的一部分。从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]
-->
如何删除字符串中的注释块。这是我想要删除的字符串的一部分。从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]
-->
我发现了一个正则表达式来去除这种注释块
myString = Regex.Replace(myString , @"(?s)(?<=<!--).+?(?=-->)", "")
在这些情况下,我会建议你使用外部的lib如的“HTML敏捷性包” http://htmlagilitypack.codeplex.com/ 这是他们的CodePlex网站页面上通过的NuGet & availble的,你会在houw找到代码示例使用图书馆。
它将使您能够在C#中加载html模型。通过这种方式,你可以抽出你不需要的东西,或者操纵某些标签等等。甚至,比如你的情况,在html-doc中提取注释。我没有准确的代码片段,但您可以使用此库快速处理它。
自己这样做,即使使用REGEX,也需要耗费大量的时间,并且一开始就会出错。看看它是这样的:不要重新发明轮子;)。
谢谢。这是一个很好的图书馆。但我认为这对我的问题太过分了。我找到了一个更简单的方法,并发布为答案。 – Azade
好吧,我明白,对于有限的字符串,可以通过正则表达式来完成..我假设你有一大堆场景,你指出的只是一大堆样本。在这种情况下,我猜的确实是正则表达式。 –
的你最好添加你做了什么。 – herohuyongtao
我想找到一个正则表达式来删除这段评论之间的内容。但到现在为止我还没有找到任何东西,它工作正常。 myString = Regex.Replace(myString,@“(?s)(?<= <! - )。+?(?= - >)”,“”).Trim(); – Azade