有 Java 编程相关的问题?

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

java如何获取与模式匹配的文件列表

在我的eclipse插件中,我打开了一个包含两个字段的对话框。1用于文件夹选择,2用于图案,用户可以选择文件夹并输入图案。 我需要列出该文件夹中与模式匹配的所有文件。因为

例如:如果用户想要名称以DAO结尾的文件列表,他们会在模式文本框中给出*DAO。或者

如果他们想要所有以My开头的文件,他们会在模式中给出My*

我从选定的Ifolder中获取IResource对象列表。我循环浏览列表,并将文件名和模式与下面的代码匹配

模式——保存用户在对话框中输入的值。 文件名--文件名--IResource。getName()

final Pattern pattrn = Pattern.compile(pattern);
final Matcher matcher = pattrn.matcher(fileName);
return matcher.matches();

这段代码给出了一个错误 例1: 索引0附近悬空的元字符“*” *刀

对于ex 2:对于任何文件名都返回true

我应该如何匹配模式和文件名


共 (1) 个答案

  1. # 1 楼答案

    是的,Pattern.compile方法将把regex作为参数,而不是glob。需要在*符号之前添加.

    要匹配所有文件名endswith DAO

    final Pattern pattrn = Pattern.compile(".*DAO$");
    

    如果你想要以M开头,以DAO结尾的文件,那么你可以试试这个

    final Pattern pattrn = Pattern.compile("^M.*DAO$");
    

    如果在matches方法中传递上述正则表达式,则不需要锚定

    filename.matches(".*DAO");
    filename.matches("M.*DAO");