我正在用PHP创建一个CSS生成器,它使用CSSX (是的,它们是我的想法)文件(具有特殊的语法)。其中一个功能是“简短的评论”:
body
{
font-family: Georgia; //I really like this font!
}现在我想用/* ... */注释替换此注释,因此输出如下所示:
body
{
font-family: Georgia; /*I really like this font!*/
}我该怎么做呢?谢谢,
将完整的CSSX文件读入一个字符串变量。
附注:此问题已得到回答。要解决url('//server/etc.cssx')问题,请使用以下命令:
$file = preg_replace('~[^"\'\(]//([^\r\n]*)[^"\'\)]~', '/*$1*/', $file);发布于 2009-11-19 23:58:15
regexp应该可以做到这一点:
$str = preg_replace('_//(.*)$_m', '/*$1*/', $str);这将不会考虑带引号的字符串-如果您正在使用一些疯狂的东西,比如
background-image: url('//my-server/my.jpg');然后它会认为这是一个评论。如果这是一个问题,那么你最好写一个合适的解析器。
发布于 2009-11-20 00:00:49
<? preg_replace('#//(.*)$#', '/*$1*/', $cssx); ?>发布于 2009-11-20 00:10:20
Greg的表达式有两个问题:第一,'m‘和'$’是多余的,第二,它不能正确地处理回车(如果你的系统使用了它们)。
一个更好的表达方式似乎是
preg_replace('~//([^\r\n]*)~', '/*$1*/', $str);https://stackoverflow.com/questions/1764311
复制相似问题