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 に答える