URL路径匹配算法实现

自定义的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最后一位是 * ,代表通配,后
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值