pattern.compile用法

Patternp=Pattern.compile("/transit/*");当req.getServletPath()是/transit/任何方法的时候用p.match... Pattern p = Pattern.compile("/transit/*");
当req.getServletPath() 是 /transit/任何方法的时候
用 p.matcher(req.getServletPath()).matches() 返回false 是为什么?
展开
 我来答
6fone
推荐于2017-06-27 · TA获得超过804个赞
知道小有建树答主
回答量:631
采纳率:33%
帮助的人:556万
展开全部
下面的代码返回是true ,说明req.getServletPath()不是/transit/,自己打印出来试试

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HelloWorld{

public static void main(String []args){
System.out.println("Hello World");
Pattern p = Pattern.compile("/transit/*");
String s = "/transit/";
System.out.println(p.matcher(s).matches());
}
}
追问
我用DEBUG 看了 req.getServletPath() 是/transit/aaa的时候

p.matcher(req.getServletPath()).matches() 返回的还是false啊

或者说是我想连接/transit 下面的所有方法 可以用 /transit/* 表达吗?
追答
不行,要这样写正则表达式:  Pattern p = Pattern.compile("/transit/.*");
* 匹配零次或多次匹配前面的字符或子表达式。"/transit/*"中的*只会匹配前面出现过的字符
. 匹配除"\r\n"之外的任何单个字符。"/transit/.*"就可以实现你要的效果了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式