如何获取与模式

时间:2015-07-23 04:29:59

标签: java regex eclipse-plugin

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

例如:如果用户想要名称以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

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

1 个答案:

答案 0 :(得分:1)

Ya,Pattern.compile方法将regex作为参数而不是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");