我想问你:我如何制作一个程序,该程序制作一个简单的“类似过滤器”来通过用户输入来搜索文件。就像用户从控制台输入时一样: * fileName.txt,它将搜索包含fileName的所有文件,并且星号表明它可以在“ fileName”之前包含一些单词。
以下是一些示例: 来自控制台的用户输入:
* text.txt->匹配所有包含text.txt的文件
fileName * .txt->匹配所有包含fileName的文件,并且可以在“ fileName”之后包含单词。 file * Name.txt->匹配包含文件file和Name的所有文件,它们之间可以有一些文字。
我知道它必须与正则表达式一起使用,但是我不知道我应该使用什么正则表达式。所以你能告诉我应该使用什么模式。 谢谢你!
这是我现在搜索文件的代码:
public void FilterFile(String directory, String fileToSearch)
{
File filePath = null;
if (directory != null)
{
File filePath = new File(directory); \\ reads Directory
FilenameFilter fnf = new FilenameFilter()
{
@Override
public boolean accept(File dir, String name)
{
if (name != null)
{
if(pattern.matcher(name).matches()) // pattern that should use for matching and filtering files by user input
{
return true;
}
return false;
}
};
File[] files = filePath.listFiles(fnf);
if (files != null)
{
for (File file : files)
{
System.out.println(file.getAbsolutePath() + " found");
}
}
}
}
答案 0 :(得分:0)
尝试
(fileName)\w+.txt
用于fileName * .txt
(file)\w+(Name).txt
用于文件* Name.txt
和
\w+(text).txt
for * text.txt