2010-10-08 31 views
0

如何使用正則表達式從HTML字符串中排除樣式屬性?使用正則表達式反轉匹配

例如,如果我們有如下內嵌HTML字符串:

<html><body style="background-color:yellow"><h2 style="background-color:red">This is a heading</h2><p style="background-color:green">This is a paragraph.</p></body></html>

當應用正則表達式匹配,匹配的結果應該是這樣的:

<html><body ><h2 >This is a heading</h2><p >This is a paragraph.</p></body></html>

回答

0

你只需要更換風格標籤沒有什麼,這裏是一個例子,如何用PHP做到這一點:

$text = preg_replace('/\s+style="[^"]*"/', '', $text); 
0

大多數人回答說正則表達式在大多數情況下不適合HTML,所以你應該提供你計劃實現這個的語言。

但是像這樣的正則表達式將取代標題:

<h2\s+style="background-color:red"> 
// replace with 
<h2> 

段落標記的正則表達式是類似的(與「p」和「紅」與「綠色」替換「H2」)。

1

由於HTML不規則,因此無法使用正則表達式解析HTML。

當然你也可以通過搜索style\s*=\s*"[^"]*"和更換與任何在你自己的危險偷工減料,例如,而是會從你的文字刪除任何 occurence的style="anything"