2010-12-18 87 views
0

我有一個時間代替兩個標籤之間的數據。我無法弄清楚這種模式的正則表達式。 My tags are simply <!-- Model # Start --> and <!-- Model # End -->PHP與標籤之間的替換正則表達式

代碼:

 $products[''.$row[0].''][2] = preg_replace("/(<!-- Model # Start -->).*(<!-- Model # End -->)/i", "$1$2", $products[''.$row[0].''][2]); 
     echo $products[''.$row[0].''][2] . "\n"; 

數據:[ '$行[0]' ''] $產品[2]

Economical. 7 mils thick, tough & stretchy. Each roll cellophane wrapped. UL listed. 

<!-- Model # Start --> 
<p style='text-align: right;'>16736</p> 
<!-- Model # End --> 
+1

連接空字符串的目的是什麼? '$產品[ ''。$行[0]。 '']'。試圖得到像'(字符串)'投的東西? – alex 2010-12-18 01:18:28

回答

1

嘗試:

/(.*<!-- Model # Start -->).*(<!-- Model # End -->.*)/im 

請注意m用於多行匹配的標誌。

如果您有多個標籤發生,您可以使用不情願的量詞來獲得第一個匹配,或使用環視。

http://rubular.com/有助於測試。

+0

完美,並感謝您的鏈接到一個偉大的正則表達式工具! – 2010-12-18 04:06:47

+0

我覺得我跳起來很快。此代碼... $ products [''。$ row [0]。''] [2] = preg_replace(「/(.*