流过滤器正则表达式

时间:2019-09-02 08:45:01

标签: java

List<File> fileListToProcess = Arrays.stream(allFolderPath)
                .filter(myFile -> myFile.getName().matches("archive_"))
                .collect(Collectors.toList());

我正在过滤以“ archive_”开头的文件,以使用正则表达式和流进行处理。这是行不通的。我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

您可以为此使用String's startsWith方法

List<File> fileListToProcess = Arrays.stream(allFolderPath)
                .filter(myFile -> myFile.getName().startsWith("archive_"))
                .collect(Collectors.toList());

OR 您可以使用以下正则表达式来检查您的字符串是否以archive_开头:

  

^(archive _)。*

喜欢:

List<File> fileListToProcess = Arrays.stream(allFolderPath)
                    .filter(myFile -> myFile.getName().matches("^(archive_).*"))
                    .collect(Collectors.toList());