2011-02-27 46 views
0

我使用了一些我在互联网上找到的代码来压缩我的css文件,它工作的很好,但是有一个正则表达式问题导致了一些麻烦。php正则表达式问题

$css = preg_replace('/([\\w#\\.\\*]+)\\s+([\\w#\\.\\*]+){/', "$1\n$2{", $css); 

此语句应该在一行分隔多个CSS规则为每行一个CSS规则。

例如:

block_1 .block_2 {color:red} .block_3 .block_4 {color:blue} 

应该改为:

.block_1 .block_2 {color:red} 
.block_3 .block_4 {color:blue} 

但它的作用是一样的东西:

.block_1 
.block_2 {color:red} .block_3 
.block_4 {color:blue} 

它确实有规则,如

同样的事情
.block_1 p {} div.x div {} 

有人可以快速查看该正则表达式行吗?正则表达式是不是我的专长:)

回答

3

也许这只是我,但不会简单的字符串替换工作吗?

只需将}替换为}\n即可。

+0

这毫无疑问是这些“我”愚蠢的“时刻,这解决了我的问题:) – Joe 2011-02-27 16:49:39

2

而不是重新发明了用正则表达式(这是很难的,并导致正则表达式,没有人 - 甚至不是你 - 就明白了)轮,你应该使用现有的工具,这已经过很多测试,并且已经成熟。

例如,您可能想看看YUI Compressor's CSS minifier

+0

问题是我真的不想依靠外部api或者不得不为这个特定组件安装额外的软件 – Joe 2011-02-27 16:49:04

+0

哦:-(玩得开心,然后;-) – 2011-02-27 16:50:05