Java 检查文件夹名称中是否有 14 位数字

标签 java regex directory digits

我试图让我的java程序在目录中搜索包含单词“natives”的任何其他文件夹。我已经完成了所有这些工作。但为了确保更高的安全性,我还希望它检查数字,看到实际文件夹名为“1.7.4-natives-16411115736623”。

总而言之,我希望我的java程序检查名称中是否包含“natives”的目录。如果是这样,请检查文件夹名称在“natives”一词后面是否包含“-16411115736623”。请记住,这些数字是随机的,但始终是 14 位数字。

这是我当前的代码:

'文件夹 = new File(System.getProperty("user.home")+File.separator+"/Library/Application Support/minecraft/versions/");

文件[] listOfFiles = 文件夹.listFiles();

外循环:

            for (int i = 0; i < listOfFiles.length; i++) {
                if (listOfFiles[i].isDirectory()) {
                    String filePathString = (System.getProperty("user.home")+"/AppData/Roaming/.minecraft/versions/"+listOfFiles[i].getName()+"/");
                    File folder2 = new File(filePathString);
                    File[] listOfFiles2 = folder2.listFiles();
                    for (int f = 0; f < listOfFiles2.length; f++){
                        if(listOfFiles2[f].getName().contains("natives")) {
                            mcRunning = true;
                            System.out.println(listOfFiles2[f]);
                            System.out.println("Folder Exists");
                            Utils.verifyJars(filePathString);
                        }else{
                            System.out.println(listOfFiles2[f]);
                            System.out.println("Folder does Exist");
                        }
                    }
                }
            }'

最佳答案

同时进行这两项操作

无需进行第二次检查。正则表达式允许您一次检查两者文件夹名称是否包含 natives,以及 natives 后跟短划线和 14 位数字.

使用此正则表达式:natives-\d{14}

或者,如果 14 位数字必须终止文件夹名称,请使用 natives-\d{14}$ (否则您可以匹配 some-natives-0123456789012311111 和我的狗)

要在代码中执行此操作,您可以使用 if(listOfFiles2[f].getName().contains("natives")) 来代替:

// before the outer for loop
Pattern regex = Pattern.compile("natives-\\d{14}$");

// later
Matcher regexMatcher = regex.matcher(listOfFiles2[f].getName());
if(regexMatcher.find()) {... success ...}

关于Java 检查文件夹名称中是否有 14 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24125054/

相关文章:

java - Selenium:从数组中的字符串匹配xpath

javascript - 从字符串中提取信息

ruby - 如何访问 Ruby 正则表达式中同一匹配组的不同出现?

c# - 特定扩展名的 Directory.GetFiles

java - 我可以在哪里存储程序数据? (操作系统、Java)

c++ - 如何在 MFC 应用程序中正确删除包含文件和子文件夹的文件夹

java - 对于这种不明确定义的继承,正确的设计模式是什么?

java - smtp 和 pop3 如何与 localhost 一起使用

java - 创建继承的Activity时出现StackOverFlowError

c# - 正则表达式从捕获中排除匹配