2013-07-26 46 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