preg_replace正在替换匹配,包括其中包含的内容

时间:2014-09-22 06:40:58

标签: php regex

我使用preg_replace用空格替换HTML注释标记,但似乎是用空格替换整个HTML注释。

    echo preg_replace('/<!--(.*?)-->/','',$r->pageCont);

其中$ r-&gt; pageCont是包含HTML的数据库条目,例如:

    <div class="col-lg-12">
    <p>The year is:</p>
    <!-- <?php echo date(Y); ?> -->
    </div>

在上面的示例中,HTML注释标记将被删除,只留下PHP代码来回显年份。就像我说的那样,正在发生的事情是整个HTML评论被剥夺了。

有人可以推荐使用模式吗?非常感谢您的意见。

编辑:更新的问题以反映我正在使用的代码。

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试用内部存在的php代码替换注释行。如果是,那么您需要将替换字符串设置为$1,以便它将引用组索引1.

echo preg_replace('/<!--(.*?)-->/', '$1', $r->pageCont);

DEMO