2013-07-26 85 views
0

我想從字符串中刪除一些塊,這基本上是html代碼;大塊是由 我與正則表達式爲零,但在另一個SO主題(Replace everything between and including two characters using regex in php)上找到此方法,但它不工作,我無法得到原因。 我的塊是HTML代碼中的佔位符,就像這樣:PHP從字符串中刪除分隔的佔位符

#_2#

和I'tried這些功能(沒有一個成功的):

$text = preg_replace('/\[[#]]*]/', '', $text); 
$text = preg_replace("/\\#\\\(\d).*?\\#/", "", $text); 
$text = preg_replace('~\#(\d+)\#~' , "", $text); 

可有人建議我一種方法來做到這一點? 任何幫助將不勝感激。 THX

+0

什麼是預期的輸出? – HamZa

+0

輸出應該是沒有佔位符的整個字符串(即html代碼),包括分隔符'#' – MarcoSpada

+0

用實際輸入和預期輸出編輯您的問題。正則表達式的細微變化可能會導致它無法正常工作。 – HamZa

回答

1
echo preg_replace('/#\w+#/', '', $text); 
+1

'\ w' =='[a-zA-Z0-9_]'所以你可以刪除下劃線 – HamZa

+1

@HamZa - 謝謝! –

1
$text = "#in1#out1#in2#out2#in3###out3"; 
$text = preg_replace('/#[^#]*#/', '', $text); 
echo $text, PHP_EOL; 

應該呼應只出部分即:out1out2out3