2017-06-26 25 views
0

我有一個大文件,由Sublime Text中的〜4000行CSS組成。我想寫一個RegEx在文件中搜索包含特定顏色代碼(#48535B,)的所有CSS規則,以便我可以將每個相應的CSS規則複製到另一個文件中,然後從原始文件中刪除它們文件。完成這件事將會是一個好的RegEx嗎?RegEx搜索包含顏色代碼的所有CSS行|崇高文本3

因此,舉例來說,我已經CSS規則格式化,像這樣:

a { 
    color:#000; 
    text-decoration:none 
} 
a:hover,a:focus { 
    color:#999; 
    text-decoration:underline 
} 

.model-selector-parallax .carousel-prev, 
.model-selector-parallax .carousel-next, 
.ddc-btn-primary, 
.showroom-detail .hproduct .view-link, 
.showroom-detail .callout .callout-button, 
.pricing .ePrice .ddc-btn, .pricing .eprice-button, 
.pricing .ddc-btn[data-eprice], 
.mycars-favorites .hproduct .pricing .make-an-offer, 
.locations-proximity { 
     outline:thin dotted #48535B !important; 
     outline:5px auto -webkit-focus-ring-color; 
     outline-offset:-2px 
    } 

img { 
    vertical-align:middle 
} 
.img-responsive { 
    display:block; 
    max-width:100%; 
    height:auto 
} 
.img-rounded { 
    border-radius:0px 
}` 

我想正則表達式找到包含「#48535B」整個規則,並從規則的開頭突出顯示它到結束}括號。所以在這種情況下,它會查找並高亮顯示(包括所有的逗號分隔類的,即使他們在不同線路):

.model-selector-parallax .carousel-prev, 
.model-selector-parallax .carousel-next, 
.ddc-btn-primary, 
.showroom-detail .hproduct .view-link, 
.showroom-detail .callout .callout-button, 
.pricing .ePrice .ddc-btn, .pricing .eprice-button, 
.pricing .ddc-btn[data-eprice], 
.mycars-favorites .hproduct .pricing .make-an-offer, 
.locations-proximity { 
     outline:thin dotted #48535B !important; 
     outline:5px auto -webkit-focus-ring-color; 
     outline-offset:-2px 
    } 

在這一點,我可以複製所有結果,並將其粘貼到一個單獨的文件。

此外,RegEx避免匹配某個顏色代碼。因此,舉例來說,如果我們試圖避免匹配48535B,我們有:

.navbar-default { 
    -webkit-box-shadow:rgba(0,0,0,0.15) 0px 10px 10px; 
    -moz-box-shadow:rgba(0,0,0,0.15) 0px 10px 10px; 
    box-shadow:rgba(0,0,0,0.15) 0px 10px 10px; 
    border-top:solid #f2f2f2; 
    border-bottom:solid #48535B !important; 
    border-width:2px 0 1px 
} 

正則表達式會發現和亮點:

.ddc-navbar-default { 
    -webkit-box-shadow:rgba(0,0,0,0.15) 0px 10px 10px; 
    -moz-box-shadow:rgba(0,0,0,0.15) 0px 10px 10px; 
    box-shadow:rgba(0,0,0,0.15) 0px 10px 10px; 
    border-top:solid #f2f2f2; 
    border-width:2px 0 1px 
} 

含義,它發現並強調一切,但包含行48535B,包括逗號分隔的不同行上的類。

任何幫助將不勝感激!

非常感謝!

+0

而你到目前爲止嘗試過什麼? – miken32

回答

0

我想這其中的似乎工作:

[^{\n]+\{[^}]+#[0-9a-f]{6}[^}]+\} 

我不是正則表達式的專家,雖然。我希望它爲你的作品

對於逗號分隔的多行規,這一次似乎爲我工作:

^[^{}]+\{[^}]+#[0-9a-f]{6}[^}]+\} 

爲了避免匹配特定的顏色code

^[^{}]+\{[^}]+#(?!code)[0-9a-f]{6}[^}]+\} 

例如,這將不匹配ffffff

^[^{}]+\{[^}]+#(?!ffffff)[0-9a-f]{6}[^}]+\} 
+0

這工作,謝謝!但是,這隻適用於單行規則,並不適用於包含逗號分隔的類和不同行上的類的規則。我的道歉,我應該指出,這需要這樣做。我們如何調整RegEx以包含逗號分隔的類和不同行上的類?我編輯了我的原始問題以包含一個例子。謝謝! – SimplySpoons

+0

別擔心。我更新了我的答案。不客氣 – Piyin

+0

這個工程,非常感謝你! – SimplySpoons