Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于XLSX文件扩展名的Java正则表达式_Java_Regex - Fatal编程技术网

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

用于XLSX文件扩展名的Java正则表达式,java,regex,Java,Regex,我有以下文件名: ABC 14-15 PCEE质量检查表-由XYZ IDFFCFYL-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))$)"

我有以下文件名:

ABC 14-15 PCEE质量检查表-由XYZ IDFFCFYL-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"); 
}
但是,此文件名的模式失败。有人能帮我解决这个问题吗?

为什么不直接使用这个方法呢


这是我在jshell中做的测试

jshell>Matcher xlsMatcher=xlsPattern.Matcher(“ABC 14-15 PCEE质量检查表-由XYZ IDFFCFYL-01 BB.xlsx检查”)

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

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

find true

请尝试用find()替换匹配项()。看见
if(filename.toLowerCase().endsWith(".xlsx"))
{
 // Do something
}
else
{
  // Do something else
}