@param value @param matchMethod MatchMethodEnum @param matchRule @return
(String value, Byte matchMethod, String matchRule)
| 33 | * @return |
| 34 | */ |
| 35 | public static boolean match(String value, Byte matchMethod, String matchRule) { |
| 36 | if (MatchMethodEnum.EQUAL.getCode().equals(matchMethod)) { |
| 37 | return value.equals(matchRule); |
| 38 | } else if (MatchMethodEnum.REGEX.getCode().equals(matchMethod)) { |
| 39 | // 将 Pattern 缓存下来,避免反复编译Pattern |
| 40 | Pattern p = PATTERN_MAP.computeIfAbsent(matchRule, k -> Pattern.compile(k)); |
| 41 | Matcher m = p.matcher(value); |
| 42 | return m.matches(); |
| 43 | } else if (MatchMethodEnum.LIKE.getCode().equals(matchMethod)) { |
| 44 | return value.indexOf(matchRule) != -1; |
| 45 | } else { |
| 46 | throw new ShipException("invalid matchMethod"); |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | public static String byteToStr(byte[] data) { |
| 51 | try { |