要求如下
1、需要是qq.com域名下,可以是www.qq.com,也可以是mail.qq.com,但是不能是www.qq.com.cn、www.qq.com.net这些。
2、支持子页面判断,例如www.qq.com/XXXX/XXXX/XXXX
3、http://可有可无

解决方案 »

  1.   

    Regex reg = new Regex(@"(?is)qq.com$|qq.com[^.]+");
      

  2.   

    ^(?i)(https?://)?(www|mail)\.qq.com(/[^/]+)*$
      

  3.   

    不能有https
    可以再改改吗?
      

  4.   

    亲,需要是qq.com域名下,不一定只是www和mail……
      

  5.   

    ^(http\:\/\/)?[\w\-\.]?\.qq\.com($|\/[\w\-\.\/]*$)
    不知道行不行?
      

  6.   

    写错了,改改^(http\:\/\/)?[\w\-\.]+\.qq\.com($|\/[\w\-\.\/]*$)
      

  7.   


    大大,你这个正则表达式真的很棒呀,但是有一点点小问题
    比如123qq.com,返回的是true
      

  8.   

    如果我是qq.com,你这个判断也不对呀……
    可以改改吗?
      

  9.   

    ^(http\:\/\/)?([\w\-\.]+\.)?qq\.com($|\/[\w\-\.\/]*$)
      

  10.   

    这个不行吗?string pattern="^(?i)\w+\.qq.com(/[^/]+)*$';
      

  11.   

    参考了一下其它人的,去掉了一些不必要的转义
    ^(http://)?([\w\-]+\.)*qq\.com(/[^/\.]+)*$
      

  12.   

    public static void testPattern(String value){
    /*要求如下
    1、需要是qq.com域名下,可以是www.qq.com,也可以是mail.qq.com,但是不能是www.qq.com.cn、www.qq.com.net这些。
    2、支持子页面判断,例如www.qq.com/XXXX/XXXX/XXXX
    3、http://可有可无 
     */
    String reg = "^(http://)?((\\w+)\\.)*qq\\.com(/.+)*$";
    Pattern pattern = Pattern.compile(reg);
    Matcher match = pattern.matcher(value);
    boolean flag = match.matches();
    System.out.println(flag);
    }
    public static void main(String[] args) throws IOException{
    System.out.println("==workspace=="+System.getProperty("user.dir"));
    testPattern("http://ww.qq.com/dd/1//");
    }