【问题标题】:how to get list of files matching a pattern如何获取与模式匹配的文件列表
【发布时间】:2015-07-23 04:29:59
【问题描述】:

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

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

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

我从选定的 Ifolder 中获取 IResource 对象列表。我遍历列表并将文件名和模式与以下代码匹配。

pattern -- 保存用户在对话框中输入的值。 fileName -- 文件名 -- IResource.getName().

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

此代码给出错误 例如 1: 在索引 0 附近悬空元字符“*” *DAO

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

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

【问题讨论】:

    标签: java regex eclipse-plugin


    【解决方案1】:

    是的,Pattern.compile 方法会将正则表达式作为参数而不是 glob。您需要在* 符号前添加.

    匹配所有以DAO结尾的文件名

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2011-11-22
      • 1970-01-01
      • 2012-01-21
      • 2010-10-05
      • 2020-10-07
      相关资源
      最近更新 更多