2015-06-01 36 views
1

我有以下文件名:Java的正則表達式XLSX文件擴展名

ABC 14-15 PCEE qwerty checklist - checked by XYZ IDFFCFYYL-01 BB.xlsx

我使用下面的正則表達式來測試文件是否有XLSX擴展:

String filename = "ABC 14-15 PCEE qwerty checklist - checked by XYZ IDFFCFYYL-01 BB.xlsx";  
private static final String checkXLSXfile = "([^\\s]+(\\.(?i)(xlsx))$)"; 
private static final Pattern pattern = Pattern.compile(checkXLSXfile); 
if (pattern.matcher(filename).matches()) { 
    System.out.println("Heaven"); 
} 
else { 
    System.out.println("HELL"); 
} 

然而,此文件名稱的模式失敗。有誰能幫我解決這個問題嗎?

+0

請嘗試用find()替換matches()。見http://stackoverflow.com/questions/4450045/difference-between-matches-and-find-in-java-regex – Javakid

回答

3

爲什麼不只是使用String.endsWith(String)方法?

if(filename.toLowerCase().endsWith(".xlsx")) 
{ 
// Do something 
} 
else 
{ 
    // Do something else 
}