Regular expression to remove CSS comments
I want to write the regular expression in php for matching the lin开发者_JS百科e 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.
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 );
精彩评论