3

我不明白如何在 PHP preg_replace 中用另一个 div 替换一个 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);

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

4

1 回答 1

4

由于您regex 的工作正常,我怀疑您没有将返回值分配preg_replace给任何变量。

$string = preg_replace('/<div id=\"myid\">.*<\/div>/','anything',$string);

应该管用。


编辑问题后:

正如@Felix Kling提到的那样,.*它是贪婪的,这意味着它匹配所有内容,直到最后一场比赛。您可以使用非贪婪量词(即。.*?)。以下应该有效

$string = preg_replace('/<div id=\"myid\">.*?<\/div>/','anything',$string);
于 2013-03-08T14:03:08.730 回答