privatestaticbooleanwildMatch(String pattern, String str) {
pattern=toJavaPattern(pattern);returnjava.util.regex.Pattern.matches(pattern, str);
}privatestaticString toJavaPattern(String pattern) {
String result="^";charmetachar[]={ '$', '^', '[', ']', '(', ')', '{', '|', '*', '+', '?', '.', '//' };for(inti=0; i
result+="/"+ch;
isMeta=true;break;
}
}if(!isMeta) {if(ch=='*') {
result+=".*";
}else{
result+=ch;
}
}
}
result+="$";returnresult;
}publicstaticvoidmain(String[] args) {
test("*","toto");
test("toto.java","tutu.java");
test("12345","1234");
test("1234","12345");
test("*f","");
test("***","toto");
test("*.java","toto.");
test("*.java","toto.jav");
test("*.java","toto.java");
test("abc*","");
test("a*c","abbbbbccccc");
test("abc*xyz","abcxxxyz");
test("*xyz","abcxxxyz");
test("abc**xyz","abcxxxyz");
test("abc**x","abcxxx");
test("*a*b*c**x","aaabcxxx");
test("abc*x*yz","abcxxxyz");
test("abc*x*yz*","abcxxxyz");
test("a*b*c*x*yf*z*","aabbccxxxeeyffz");
test("a*b*c*x*yf*zze","aabbccxxxeeyffz");
test("a*b*c*x*yf*ze","aabbccxxxeeyffz");
test("a*b*c*x*yf*ze","aabbccxxxeeyfze");
test("*LogServerInterface*.java","_LogServerInterfaceImpl.java");
test("abc*xyz","abcxyxyz");
}privatestaticvoidtest(String pattern, String str) {
System.out.println(pattern+""+str+"=>>"+wildMatch(pattern, str));
}