有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正则表达式和AwkFilenameFilter

我们有一个文件夹,可以在其中转储很多文件。我们的程序需要读取一个最新版本的特定文件。文件名类似于“2016-03-04-12-46-48_ABC_123456_1.xml

我用下面的代码和正则表达式来代替读取所有文件,然后迭代找到确切的文件

File folder = new File("C:\\some_folder")    
folder.listFiles((FilenameFilter) new AwkFilenameFilter("(\\d){4}-(\\d){2}-(\\d){2}-(\\d){2}-(\\d){2}-(\\d){2}_ABC_" + <ID_String> +"_(\\d){1,2}"))

但由于某些原因,reqular表达式不起作用。有人能帮忙吗


共 (2) 个答案

  1. # 1 楼答案

    您似乎缺少正则表达式中的文件扩展名:

    (\\d){4}-(\\d){2}-(\\d){2}-(\\d){2}-(\\d){2}-(\\d){2}_ABC_" + <ID_String> +"_(\\d){1,2}\\.xml
    
  2. # 2 楼答案

    试试这个

    "\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2}_ABC_"+<ID string>+"_\d{1}.xml"
    

    这对我来说非常有效