我不知道如何在PHP preg_replace
中用其他替换div$string ='
<div id="myid">this has to be replaced</div>
<p>here is something</p>
<div id="any">any text not to be replaced</div>
';
如果我这样做
$string = preg_replace('/<div id=\"myid\">.*<\/div>/','anything',$string);
它不起作用,我不明白为什么?!
答案 0 :(得分:3)
由于您的regex
is working fine我怀疑您没有将preg_replace
的返回值分配给任何变量。
$string = preg_replace('/<div id=\"myid\">.*<\/div>/','anything',$string);
应该有用。
编辑完问题后:
正如@Felix Kling提到的那样,.*
是贪婪的,这意味着它匹配所有内容直到最后一场比赛。您可以使用非贪婪量词(即.*?
)。以下should work:
$string = preg_replace('/<div id=\"myid\">.*?<\/div>/','anything',$string);