正则表达式不会删除html评论?

时间:2011-06-30 14:32:14

标签: regex vb.net

我有以下字符串:

<TD><!-- 1.91 -->6949<!-- 9.11 --></TD>

我想最终:

<TD>6949/TD>

但我最终只得到标签而没有信息:

<TD></TD>

这是我正在使用的正则表达式:

RegEx.Replace("<TD><!-- 1.91 -->6949<!-- 9.11 --></TD>","<!--.*-->","")

有人可以解释如何保留数字并删除评论内容。如果可能的话,有人可以解释为什么会这样吗?

3 个答案:

答案 0 :(得分:3)

.*是一个贪婪的限定词,尽可能匹配 它匹配所有内容,直到 last -->

将其更改为.*?,这是一个惰性限定符。

答案 1 :(得分:2)

.*贪婪,所以它会匹配尽可能多的字符。在这种情况下,第一个评论的开头直到第二个评论结束。将其更改为.*?[^>]*会修复它,因为?会使匹配变得懒惰。也就是说它会匹配尽可能少的字符。

答案 2 :(得分:2)

使用Regex解析HTML总是很棘手。相反,使用类似HTML Agility Pack的内容,它将允许您以结构化的方式查询和解析html。