2013-01-22 113 views
0

我已經創建了一個自定義標籤,需要在頁面呈現前剝離並替換。標籤是這樣的:[@ customTagToBeReplaced]Preg_replace和自定義標籤

我使用的preg_replace函數模式是這樣在PHP:

$pattern = "/\[@ .*\]/is"; 

當我已經實現了它,有時甚至更多或更少的字符被剝離剩下的一半HTML標記已損壞。就像這樣:

前:

<div class=""> 
[@ error] 
</div> 

後:

<div class="</div> 

回答

0

你的模式是過於貪婪,試圖用更具體的東西:

$pattern = "/\[@ \w+\]/is"; 

\w匹配所有文字字符(字母數字&下劃線)。

+0

它的工作原理!謝謝你的提示。只是好奇,你碰巧知道正則表達式的好資源嗎? – osoclever

+0

我建議閱讀「掌握正則表達式」,真是一本好書(相當大)。還有一個我非常喜歡的在線資源(http://www.regular-expressions.info/)。 – freedev