dongpaocuan7498
2017-10-16 22:15
浏览 37
已采纳

使用PHP [duplicate]删除注释中的CSS

This question already has an answer here:

Let's say I have a string like this:

$css = '.class {
    color: red;
}

/* Start Comment */
.replace {
    content: "me";
}
/* End Comment */';

How can I remove everything inside the comment, including the comment itself?

I want this result:

.class {
    color: red;
}

I've tried something like this, but it doesn't do it:

$css = preg_replace( '#(/* Start Comment */).*?(/* End Comment */)#', '', $css );

I've also tried this: https://stackoverflow.com/a/13824617/2391422

Am I missing something ridiculously obvious here?

Really appreciate any feedback - regex is something I need to study further.

</div>

图片转代码服务由CSDN问答提供 功能建议

此问题已经存在 这里有一个答案:

  • 如何匹配正则表达式中多行的任何字符? 22 answers

    假设我有一个这样的字符串:

      $ css ='。class {
     color:red; 
    } 
     
     / *开始评论* / \  n.replace {
     content:“me”; 
    } 
     / *结束评论* /'; 
       
     
     

    如何删除评论中的所有内容 ,包括评论本身?

    我想要这个结果:

      .class {
     color:red; 
    } 
        
     
     

    我尝试过类似的东西,但它没有这样做:< / p>

      $ css = preg_replace('#(/ * Start Comment * /)。*?(/ * End Comment * /)#','',$ css); \  n   
     
     

    我也试过这个: https://stackoverflow.com / a / 13824617/2391422

    我在这里错过了一些非常明显的东西吗?

    真的很感激任何反馈 - 正则表达式是我需要的东西 进一步研究。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doumu5934 2017-10-16 22:23
    已采纳

    You can get this code to work by adding the DOTALL-modifier s http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

    $css = preg_replace( '#(/\\* Start Comment \\*/).*?(/\\* End Comment \\*/)#s', '', $css );
    

    Additionally, the * should be escaped to get the desired effect. The / are fine as you are using another delimiter.

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题