如何获取与模式匹配的文件列表
how to get list of files matching a pattern
我从我的 eclipse 插件中打开了一个包含两个字段的对话框。 1 个用于文件夹 selection,第 2 个用于模式,用户可以在其中 select 文件夹并输入模式。
我需要列出该文件夹中与模式匹配的所有文件。对于
例如:如果用户想要名称以 DAO 结尾的文件列表,他们将在模式文本框中给出 *DAO。或
如果他们想要所有以 My 开头的文件,他们会在模式中给出 My*。
我从 selected 的 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: returns 对任何文件名都是正确的
我应该如何匹配模式和文件名。
是的,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");
我从我的 eclipse 插件中打开了一个包含两个字段的对话框。 1 个用于文件夹 selection,第 2 个用于模式,用户可以在其中 select 文件夹并输入模式。 我需要列出该文件夹中与模式匹配的所有文件。对于
例如:如果用户想要名称以 DAO 结尾的文件列表,他们将在模式文本框中给出 *DAO。或
如果他们想要所有以 My 开头的文件,他们会在模式中给出 My*。
我从 selected 的 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: returns 对任何文件名都是正确的
我应该如何匹配模式和文件名。
是的,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");