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

3

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

<!--
[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
我想找一个正则表达式来删除这个注释块中间的内容。但是到目前为止我还没有找到任何东西,而且它运行得很好。myString = Regex.Replace(myString , @"(?s)(?<=<!--).+?(?=-->)", "").Trim(); - Azadeh Radkianpour
2个回答

4
我找到了一个正则表达式来删除这种注释块。
myString = Regex.Replace(myString , @"(?s)(?<=<!--).+?(?=-->)", "")

1
在这些情况下,我建议您使用外部库,例如“Html Agility Pack” http://htmlagilitypack.codeplex.com/。它可以通过NuGet获取,在他们的codeplex页面上,您将找到如何使用该库的代码示例。
它将使您能够在C#中加载html模型。通过这样做,您可以提取不需要的内容,或操作某些标记等等。甚至可以像您的情况一样提取html-doc中的注释。我没有您情况的确切代码片段,但是您将能够非常快速地使用此库解决问题。
即使使用REGEX,自己实现这个过程也会花费很多时间,并且在最初会容易出错。把它看作是这样:不要重复造轮子;)。

1
谢谢。这是一个很好的库。但我认为这对我的问题来说有点过于复杂了。我找到了一种更简单的方法,并将其发布为答案。 - Azadeh Radkianpour
好的,我明白了,对于有限的字符串,使用正则表达式是可以的。我以为你有很多情况,而你指出的只是其中一个样本。在这种情况下,我想正则表达式确实是可以的。 - Yves Schelpe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接