为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 HTML 注释标签中删除缩进或空格?

如何从 HTML 注释标签中删除缩进或空格?

PHP
临摹微笑 2021-06-15 10:01:18
这是我的代码:$template = preg_replace("\s*/\<\!\-\-\{(.+?)\}\-\-\>/s", "{\\1}", $template);而且html我要删除评论的缺口:    <!--{hello}-->    <div class="novalue">        <a>URL</a>    </div>    <!--{/hello}-->我希望它是这样的:{hello}    <div class="novalue">        <a>URL</a>    </div>{/hello}但是,结果是:{hello}        <div class="novalue">            <a></a>        </div>{/hello}我的问题是,为什么不能删除当前行前面的其他空格?
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

\s包括换行符,您想\h用于水平空格并且不要转义正则表达式中的所有字符,它变得不可读:


$html = <<<EOD

    <!--{hello}-->

    <div class="novalue">

        <a>URL</a>

    </div>

    <!--{/hello}-->

EOD;


echo preg_replace('#\h*<!--({.+?})-->#', '$1', $html);

输出:


{hello}

    <div class="novalue">

        <a>URL</a>

    </div>

{/hello}

解释:


#           # regex delimiter

  \h*       # 0 or more horizontal spaces

  <!--      # literally, begin comment

  (         # start group 1

    {       # opening curly brace

    .+?     # 1 or more any character, not greedy

    }       # closing curly brace

  )         # end group 1

  -->       # literally, end comment

#           # regex delimiter


查看完整回答
反对 回复 2021-06-25
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

\s*从正则表达式的开头删除。

/\<\!\-\-\{(.+?)\}\-\-\>/s

然后替换为

{$1}


查看完整回答
反对 回复 2021-06-25
  • 3 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信