2012-04-16 73 views
1

我有以下兩個選擇在我的CSS,這種格式佈局:發現選擇

// file1.css 
#myId { 
    margin-right:0; 
    color:#f00; 
} 

// file2.css 
#otherId { margin-right:0; color: #f00 } 

我的目標是獲得選擇和使用的顏色值ack/grep搜索。

如果我:

ack-grep '(^.*color:\s+\d+)'

我會得到:

file1.css 
color:#f00; 

file2.css 
#otherId { margin-right:0; color: #f00 } 

這種搜索工作的罰款爲file2.css,但不是這麼好file1.css,可能是因爲我用^以匹配一行的開始..我將如何一直匹配回到某個css選擇器的開始處(從一個id或一個類或標記名開始)?

更加明顯,我想:

file1.css 
#myId {margin-right:0; color:#f00; 

file2.css 
#otherId { margin-right:0; color: #f00 } 

(和選擇並不一定是一個ID ..我應該匹配回到以前}或文件的開頭

+0

查看此答案:http://stackoverflow.com/a/10891045/288906 – 2014-12-29 01:52:17

回答

2

?無論是grep的也不ACK支持多行的正則表達式:

ack FAQ

還有其他的選擇,比如pcregrep我WOU ld使用一些CSS解析器。