2017-04-20 32 views
-3

我正在編寫代碼來過濾Java中縮小的css文件中的類和ID,但我堅持爲它編寫正則表達式。我把它寫在regexr網站上,我把它轉換成Java,但它給我的結果,而不是單詞的字符。 我正則表達式/ java代碼看起來像:Java正則表達式結果字符而不是字

List<String> allMatches = new ArrayList<String>(); 
     Matcher m = Pattern.compile("[a-zA-Z#-_](?![^{]*})") 
      .matcher(cssLine); 
     String line = ""; 
     while (m.find()) { 
      allMatches.add(m.group()); 
     } 

當我打印的所有項目從數組我得到這樣

a 
    v 
    a 
    d 

輸入的結果是這樣的:

/*HEADER*/header{height:180px;} header.fixed{position:fixed;top:0;right:0;height:70px;width:100%;display:block;z-index:1000;background-color:white;-webkit-transition:width2s,height0.2s;transition:width2s,height0,2s;} header.fixed.logo-background{background-image:url('../img/WEB_MOBILE_03.jpg');background-size:auto80%;background-position:auto5%;-webkit-transition:width2s,height0.2s;transition:width2s,height0,2s;} 

不任何人都知道爲什麼這不只是給我像「header.fixed」的字符塊?

+2

使用解析器正則表達式不是問題 – Jens

+0

尋求幫助調試(「爲什麼不是這個代碼的工作?」)必須包括所期望的行爲,一個特定的問題或錯誤,並在最短的代碼有必要在問題本身中重現它。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建[mcve]。 – GhostCat

+0

請注意,方括號中的第三個短劃線應移至最後一個位置:'[a-zA-Z#_-]'。否則,類定義包括'#'和'_'之間的任何內容,例如,這個範圍包含''''''''''?',你不太可能想在這裏匹配。 –

回答

1

+添加到您的正則表達式,所以它現在是([a-zA-Z#-_]+)(?![^{]*})

輸出

/*HEADER*/header 
header.fixed 
header.fixed.logo-background 
相關問題