0

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.

Tom Usborne
  • 189
  • 1
  • 4
  • 14

1 Answers1

1

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.

clemens321
  • 1,953
  • 9
  • 18