我是想将用户发出www.xxxx.com/myName这样的请求时可以转向到www.xxxx.com/user.do?name=myName这个请求中...于是我就写了一个filter分析用户的请求时的servletPath,如果带句点的,例如user.do就不进行拦截,如果不带句点的就作相应的处理.但问题是,正则表达式中怎么匹配句点?使用转义符\却会报错....在网上也没找到资料..所以来请教一下大家,谢谢...
    我现在就是想写一个能排除包含句点字符串的正则表达式....
    

解决方案 »

  1.   

    1楼。。
    我觉得楼主肯定只有一个\,所以会报错
    但是你在java中间的\\才表示一个\所以要匹配.  需要使用\\.
      

  2.   

    如果返回true代表有 . false没有 . 
    Pattern.matches("\\p{ASCII}*?\\/\\w+\\.\\p{ASCII}*?","www.xxxx.com/user.do?name=myName")
      

  3.   

    import java.util.regex.*;
    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
      

  4.   


    java中"\"也需要转义
    所以匹配 点的  话 必须 这样 \\.