2011-06-30 32 views
0

我有以下字符串:正則表達式不會移除html評論?

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

我想結束了:

<TD>6949/TD>

,而是我最終只是標籤和沒有信息:

<TD></TD> 

這是我正在使用的正則表達式:

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

有人可以解釋如何保持數字並刪除評論。如果可能的話,有人可以解釋爲什麼會發生這種情況嗎

回答

3

.*是一個貪婪的限定符,儘可能匹配。
這是匹配的一切,直到最後-->

將其更改爲.*?,這是一個惰性限定符。

+0

非常感謝。所以當我使用。*時,它並不關心中間是否有任何東西,它會一直持續下去,直到找到最後一個 - >並移除其中的所有字符,包括 Xaisoft

2

.*是貪婪的,所以它會匹配儘可能多的字符。在這種情況下,第一條評論的打開直到第二條結尾。將其更改爲.*?[^>]*將修復此問題,因爲?會使匹配惰性。也就是說它會匹配儘可能少的字符。

2

用正則表達式解析HTML總是會很棘手。相反,使用類似HTML Agility Pack這將允許您以結構化的方式查詢和解析HTML。