早些時候,我嘗試了一些正則表達式來修剪<!-- and -->
(包括這些標記以及)之間的字符串,但沒有成功。正則表達式 - 刪除<!-- and -->之間的字符
你能告訴我一些關於這個問題的信息嗎?
早些時候,我嘗試了一些正則表達式來修剪<!-- and -->
(包括這些標記以及)之間的字符串,但沒有成功。正則表達式 - 刪除<!-- and -->之間的字符
你能告訴我一些關於這個問題的信息嗎?
我冒昧地添加's'修飾符:默認情況下'.'與大多數正則表達式實現中的換行符都不匹配(使用's')。 –
@BartKiers:thanx,讚賞 –
以匹配文本看起來像XML註釋(非常接近HTML註釋規則的評論規則)你想要的東西是這樣的:
<!--.*?-->
假設你的語言的RE引擎支持非貪婪的量詞。去除需要在整個輸入文本中重複匹配,並替換空字符串;其語法取決於所討論的語言。
沒有非貪婪量詞,事情變得更加複雜(NB,這是稍微偏離了HTML註釋,但你真的不想學習差的細節):
<!--([^-]|-[^-])*-->
注意--
是不應該在XML註釋中遇到的,除非它後面跟着>
;這是XML評論的本質的一部分...
@Johnsyweb這只是明顯錯誤的。 HTML中的評論不能包含其他評論,所以你不會遇到模棱兩可的標記問題 - 評論只是文本以「 - >」序列結尾(評論中的任何地方的序列將結束它,你不能逃避它) – MBO
@MBO:在評論中,「 - >」明確地表示評論的結尾。但是,「<! - 」不一定是評論的開始。這可能會導致可利用的表面。例如如果此後的過濾完成,那麼可能會剝離事件屬性的東西可能會很容易受到阻礙:'-->" onmouseover="alert('uh oh')">Ooh! Move over me!'。即使使用正則表達式來解析*註釋*可能是一個壞主意。 –
@ChrisMorgan好點,我沒有考慮標籤內部的評論開始......所以這仍然是一個難題。 – MBO