【发布时间】:2014-09-22 06:40:58
【问题描述】:
我正在使用 preg_replace 将 HTML 注释标记替换为空白,但它似乎将整个 HTML 注释替换为空白。
echo preg_replace('/<!--(.*?)-->/','',$r->pageCont);
其中 $r->pageCont 是包含 HTML 的数据库条目,例如:
<div class="col-lg-12">
<p>The year is:</p>
<!-- <?php echo date(Y); ?> -->
</div>
在上面的示例中,HTML 注释标签将被删除,只留下 PHP 代码来回显年份。就像我说的那样,正在发生的事情是整个 HTML 注释都被删除了。
有人可以推荐使用的模式吗?非常感谢您的意见。
编辑:更新问题以反映我正在使用的代码。
【问题讨论】:
-
preg_replace('/<!--(.*?)-->/','',$str); -
@AvinashRaj 我尝试将运算符更改为 .*?和 .+ 但无济于事。
-
@Tim 发布您的确切输入。
-
参见此处regex101.com/r/sT0fL2/1 您的正则表达式仅删除注释行。您想用
<?php echo date(Y); ?>替换<!-- <?php echo date(Y); ?> -->吗?如果是,那么您的替换字符串将是$1。见regex101.com/r/sT0fL2/2