我有以下字符串:
<TD><!-- 1.91 -->6949<!-- 9.11 --></TD>
我想最终:
<TD>6949/TD>
但我最终只得到标签而没有信息:
<TD></TD>
这是我正在使用的正则表达式:
RegEx.Replace("<TD><!-- 1.91 -->6949<!-- 9.11 --></TD>","<!--.*-->","")
有人可以解释如何保留数字并删除评论内容。如果可能的话,有人可以解释为什么会这样吗?
答案 0 :(得分:3)
.*
是一个贪婪的限定词,尽可能匹配
它匹配所有内容,直到 last -->
。
将其更改为.*?
,这是一个惰性限定符。
答案 1 :(得分:2)
.*
贪婪,所以它会匹配尽可能多的字符。在这种情况下,第一个评论的开头直到第二个评论结束。将其更改为.*?
或[^>]*
会修复它,因为?
会使匹配变得懒惰。也就是说它会匹配尽可能少的字符。
答案 2 :(得分:2)
使用Regex解析HTML总是很棘手。相反,使用类似HTML Agility Pack的内容,它将允许您以结构化的方式查询和解析html。