删除空格/新行/注释。正则表达式?

时间:2012-11-21 13:30:15

标签: php regex preg-replace preg-match

我目前正在制作一种CSS缩小器,我认为我想要实现的示例是最简单的解释方法。

我正试图改变这个:

/* CSS Content */

.class{
    text-align:center;
    border-bottom:1px solid #ccc;
}

.anotherclass, .another, .another{
    text-align:center;
    border-bottom:1px solid #ccc;
}

分为:

.class{text-align:center;border-bottom:1px solid #ccc;}.anotherclass,.another,.another{text-align:center;border-bottom:1px solid #ccc;}

因此:删除comments,不必要的whitespacenew lines

到目前为止,我必须删除注释和新行(使用一个表达式和一个函数爆炸\n上的字符串,然后附加部分)。 whitespaces有点困难,因为whitespaces中的{}应该被移除,但不能移除colonsemicolon之间。

由于我对正则表达式的使用缺乏经验,手头上没有好的参考书,谷歌似乎没有答案:我想知道这里是否有人可以帮助我创建一个好的正则表达式做到这一点。

提前致谢!

2 个答案:

答案 0 :(得分:1)

我想你可以尝试这样的事情:

(?<=[{};])\s+|\/\*.+?\*\/

http://rubular.com/r/djDtEPzEV0

清除括号,分号和所有注释前面的空格。

答案 1 :(得分:1)

如果你必须这样做,那么这将缩小你给出的例子:

(/\*[^/]+\*/|^\t*|^\s*|\n|\s+(?=[\{.])|(?<=[\{;])\s+)

它假定你正在使用的正则表达式的味道允许正面的后视