自定义的Filter里没有excludePath,所以自己写了一个。开始写的时候还把注意力放在路径分隔符 “ / ” 上,后来发现完全没必要。站在更抽象的层次上看无非都是字符串而已。
测试数据:
"https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_6172758863756121562%22%7D&n_type=0&p_from=1"
匹配模式:
"http*://*.baidu.com/*/landingsuper*"
代码如下:
public static boolean matching(String reg, String input) {
if ("/*".equals(reg))
return true;
//按 * 切割字符串
String[] reg_split = reg.split("\\*");
int index = 0, reg_len = reg_split.length;
//b代表匹配模式的最后一个字符是否是 '*' ,因为在split方法下最后一个 * 会被舍弃
boolean b = reg.charAt(reg.length() - 1) == '*' ? true : false;
while (input.length() > 0) {
//如果匹配到最后一段,比如这里reg的landingsuper
if (index == reg_len) {
if (b)//如果reg最后一位是 * ,代表通配,后