2013-10-16 47 views
0

我有一個CSS,它被寫入了太多的引用,我想在頭文件工作之前刪除這些引用。正則表達式來刪除不需要的CSS

例如,我想改變這一點:

#x #y #header, #s #t #header{} 
#header #a #b, #t #header{} 
#k, #l,#x #y #header{} 

這是我期待的輸出:

#header, #header{} 
#header #a #b, #header{} 
#header{} 

我試着在RegexPal這個代碼,但沒有太多的成功:

(.*)(?=#header) 

我想刪除它到來之前的所有元素的#header我可以搜索和查找多添ES,但什麼這個表達式正在做的是通過最後的#header只檢查第一個不是例如用這個表達式輸出是:

#header{} 
#header{} 
#header{} 
+0

定義不需要的。 – devnull

+0

抱歉沒有得到你的要點 –

回答

1

使用非貪婪的比賽,並在外觀扔背後:

(?<=^|,).*?(?=#header) 

請參閱此正則表達式的live demo匹配您的示例文本的不需要的輸入。

說明:

.*是貪婪 - 它會匹配儘可能多的,因爲它可以,可能跳過#header下一個,但.*?不願意(又名非貪婪),並儘可能少的匹配越好 - 它不會跳過#header

(?<=^|,)是一個看後面的內容,在匹配之前聲明輸入是輸入的開始或逗號 - 允許逗號後面的新匹配。

+0

什麼都不匹配請檢查regexpal:\ –

+0

檢查我的鏈接 - 它正確匹配。發佈一個鏈接到你的regexpal例子。 – Bohemian

+1

確定好請只有1件事請解釋給我它做什麼,因爲這個問題的主要目的也是我想知道更多關於正則表達式 –

相關問題