public static boolean matchPattern()

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;
  }