Java 通配符匹配查找文件

时间:2022-05-15 03:18:23

比较了一下Java正则表达式与通配符之间的差别,很简单的进行了一下转化就行了。此外要注意String的replace和replaceAll的用法的含义,不要搞错了。

字符串匹配例子

String s = "*txt.*";

s = s.replace('.', '#');

s = s.replaceAll("#", "\\\\.");

s = s.replace('*', '#');

s = s.replaceAll("#", ".*");

s = s.replace('?', '#');

s = s.replaceAll("#", ".?");

s = "^" + s + "$";

System.out.println(s);

Pattern p = Pattern.compile(s);

ArrayList list = new ArrayList();

list.add("aabc.txt");

list.add("sdfsdfaabc.txt.asdasd");

list.add("aabcd.txt");

list.add("aabcdtxt.sadf");

list.add("abc.txt");

Matcher fMatcher = null;

String s1 = null;

int size = list.size();

for(int i=0;i<size;i++)

{

s1 = (String)list.get(i);

fMatcher = p.matcher(s1);

if(fMatcher.matches())

{

System.out.println(s1);

}

}