Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regular expression to remove CSS comments

Tags:

regex

php

I want to write the regular expression in php for matching the line within a double and single quotes. Actually I am writing the code for removing comment lines in css file.

Like:

"/* I don't want to remove this line */"

but

/* I want to remove this line */

Eg:

- valid code /* comment */ next valid code "/* not a comment */" /* this is comment */

Expected result:

- valid code next valid code "/* not a comment */"

Please any one give me a regular expression in php for my requirement.

like image 903
user285146 Avatar asked Oct 21 '10 04:10

user285146


1 Answers

The following should do it:

preg_replace( '/\s*(?!<\")\/\*[^\*]+\*\/(?!\")\s*/' , '' , $theString );

Test case:

$theString = '- valid code /* comment */ next valid code "/* not a comment */" /* this is comment */';

preg_replace( '/(?!<\")\/\*[^\*]+\*\/(?!\")/' , ' ' , $theString );

# Returns 'valid code next valid code "/* not a comment */" '

Revision : 28 Nov 2014

As per comments from @hexalys, who referred to http://www.catswhocode.com/blog/3-ways-to-compress-css-files-using-php

The updated regular expression, as per that article, is:

preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!' , '' , $theString );
like image 139
Luke Stevenson Avatar answered Sep 19 '22 01:09

Luke Stevenson