【问题标题】:PHP preg_replace to remove MS Office style html commentsPHP preg_replace 删除 MS Office 风格的 html 注释
【发布时间】:2011-04-17 15:20:03
【问题描述】:

我正在寻找一种方法来删除 MS Office 样式的 html cmets,以及介于两者之间的所有内容。它们的形式为:

<!--[if gte mso 10]>

废话 呸呸呸

<![endif]-->

<!--[if gte mso 9]>

废话 呸呸呸

<![endif]-->

我遇到的问题是我不想从 html 中删除所有 cmets。只有这些 MSO 风格的 cmets。有什么想法吗?

【问题讨论】:

    标签: php html comments preg-replace


    【解决方案1】:

    试试这个

    preg_replace('/<!--\s*\[if[^\]]*]>.*?<!\[endif\]-->/i', '', $string);
    

    它将删除所有&lt;!--[if ...]&gt;....&lt;![endif]--&gt; cmets

    【讨论】:

    • &lt;!-- [if !mso]&gt; this 在[doesnt 匹配之前带有空格
    • @l2aelba 在&lt;!-- 之后添加了\s*
    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 2011-07-20
    • 2011-07-23
    • 2012-07-05
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多