用于XLSX文件扩展名的Java正则表达式

时间:2015-06-01 03:07:13

标签: java regex

我有以下文件名:

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"); 
}

但是,此文件名的模式失败。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

为什么不使用String.endsWith(String)方法?

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

答案 1 :(得分:0)

这是我在jshell中所做的测试

jshell> Matcher xlsMatcher = xlsPattern.matcher(“ ABC 14-15 PCEE qwerty清单-由XYZ IDFFCFYYL-01 BB.xlsx检查”);

xlsMatcher ==> java.util.regex.Matcher [pattern =(?i).xlsx $ region = 0,69 lastmatch =]

jshell> System.out.println(“ find” + xlsMatcher.find());

找到真实的