自定义集合正则表达式

自定义集合正则表达式

有一次遇到要把list集合做成一个正则表达式作为拦截器的验证器弄了半天才搞定,在此做一个备忘。

//定义一个自定义正则表达式集合
private List listUrl = new ArrayList();
//在init方法里面初始化集合,当然也可在其他方法里面使用之前初始化。
String exclusionStr = filterConfig.getInitParameter("EXCLUSIONS");
        if (exclusionStr != null && !exclusionStr.isEmpty()) {
            log.debug("exclusionStr:" + exclusionStr);
            String[] inputs = exclusionStr.split(",");
            for (String input : inputs) {
                String regex = input.trim().replace("*", "(.*)").replace("?", "(.{1})");
                Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
                if (pattern != null) {
                    exclusions.add(pattern);
                }
            }
        }
//表达式的使用
if (PatternUtil.isExcluded(listUrl , reqUrl))
//reqUrl是要验证的一个字符串,listUrl 是正则集合,如果匹配成功就会返回true,匹配不成功就会返回false。

你可能感兴趣的:(Java)