in src/main/java/com/aliyun/odps/jdbc/utils/Utils.java [79:107]
public static boolean matchPattern(String s, String pattern) {
if (StringUtils.isNullOrEmpty(pattern)) {
return true;
}
pattern = pattern.toLowerCase();
s = s.toLowerCase();
if (pattern.contains("%") || pattern.contains("_")) {
// (?<!a) looks 1 char behind and ensure not equal
String
wildcard =
pattern.replaceAll("(?<!\\\\)%", "\\\\w*").replaceAll("(?<!\\\\)_", "\\\\w");
// escape / and %
wildcard = wildcard.replace("\\%", "%").replace("\\_", "_");
if (!s.matches(wildcard)) {
return false;
}
} else {
if (!s.equals(pattern)) {
return false;
}
}
return true;
}