2014-10-17 44 views
0

我有一個大的CSS文件,並需要正則表達式(記事本++),以獲得由特定的CSS值找到的元素和CSS選擇器。在下面的例子中,我需要通過值來獲得元素和選擇123456需要正則表達式來刪除不必要的字符串在記事本+ +

header #objectnav nav a { 
    border-right: solid 1px #c0c0c0; 
    border-left: solid 1px #f4f9ff; 
    color: #123456; 
} 

a:hover { 
    color: #654321; 
} 

#hints .hint { 
    background-color: #f4f9ff; 
    border: 1px solid #e0f0ff; 
    color: #123456; 
    margin: 0 0 30px 0; 
    position: relative; 
} 

退出我期待下面

header #objectnav nav a 
color 

#hints .hint 
color 

或者,如果可能的話

header #objectnav nav a^color 
#hints .hint^color 
+5

到目前爲止您嘗試過哪些正則表達式? SO不只是一個答案機器。 – bzeaman 2014-10-17 12:40:33

+1

你和哪個部分作戰? – 2014-10-17 12:40:35

+0

@Benno Zeeman,問題在於我在正則表達式中不夠強大。我嘗試了不同的組合,但沒有取得任何成功,我很慚愧地發佈它們。 – user3535807 2014-10-17 12:56:40

回答

1

我這樣做只是爲了挑戰:

以下正則表達式將查找所有包含文字123456作爲值:

[^{}\s][^{}]*\{[^}]*?[-\w]+\s*:[^;}]*?123456[^}]*\} 

但是,這只是一個基本的正則表達式。更具挑戰性的部分是,我想知道是否可以生成報告,例如僅使用Notepad ++請求的報告。事實證明這是可能的。

更換以下模式:

\s*([^{}]+?)\s*\{[^}]*?(?(?=([-\w]+)\s*:[^;}]*?123456)[^}]*|[^}])*\}\s* 

用下面的替換字符串:

(?2$1^$2:) 

或者這個取決於你喜歡的輸出:

(?2$1\r\n$2\r\n\r\n:) 

我沒有廣泛測試它,但它適用於您提供的測試用例。

相關問題