2011-02-27 76 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