如何用preg_replace regEx替换整个div

时间:2013-03-08 13:58:01

标签: php html regex preg-replace

我不知道如何在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);

它不起作用,我不明白为什么?!

1 个答案:

答案 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);