我是想将用户发出www.xxxx.com/myName这样的请求时可以转向到www.xxxx.com/user.do?name=myName这个请求中...于是我就写了一个filter分析用户的请求时的servletPath,如果带句点的,例如user.do就不进行拦截,如果不带句点的就作相应的处理.但问题是,正则表达式中怎么匹配句点?使用转义符\却会报错....在网上也没找到资料..所以来请教一下大家,谢谢...
我现在就是想写一个能排除包含句点字符串的正则表达式....
我现在就是想写一个能排除包含句点字符串的正则表达式....
我觉得楼主肯定只有一个\,所以会报错
但是你在java中间的\\才表示一个\所以要匹配. 需要使用\\.
Pattern.matches("\\p{ASCII}*?\\/\\w+\\.\\p{ASCII}*?","www.xxxx.com/user.do?name=myName")
public class Test
{
public static void main(String[] args){
System.out.println(Pattern.matches("\\p{ASCII}*?\\/\\w+\\.\\p{ASCII}*?","www.xxxx.com/user.do?name=myName"));
System.out.println(Pattern.matches("\\p{ASCII}*?\\/\\w+\\.\\p{ASCII}*?","www.xxxx.com/userdo?name=myName"));
}
}
运行结果 :
true
false
java中"\"也需要转义
所以匹配 点的 话 必须 这样 \\.