要求输入中:
        1,  只能是数字或*
        2,  不能存在两个连着的*
        3,  至少存在一组连着的三个数字

解决方案 »

  1.   

    用了两个  一个我搞不定
    Pattern pat1=Pattern.compile("[0-9]{3,}");
    Pattern pat2=Pattern.compile("\\*?(?:[0-9]{1,}\\*?)+");
    return pat1.matcher(str).find()&&pat2.matcher(str).matches();
      

  2.   

    String reg = "((\\d{0,2}[*]{0,1}((\\d)|$)){0,}(([*]{0,1}\\d{3,}){1,}(([*]\\d{1,})|(\\d)|($)))(\\d{0,2}[*]{0,1}((\\d)|$)){0,})";测试了一下,应该是可以,有待验证
      

  3.   

    ^[0-9]{3,}|[*]{0,1}
    public class Test{  //1, 只能是数字或*
      //2, 不能存在两个连着的*
      //3, 至少存在一组连着的三个数字
    public static void main(String [] args){
    String str = "*" ;

    System.out.println(str.matches("^[0-9]{3,}|[*]{0,1}")) ;
    }
    }
      

  4.   

    上面理解错了public class Test{  //1, 只能是数字或*
      //2, 不能存在两个连着的*
      //3, 至少存在一组连着的三个数字
    public static void main(String [] args){
    String str = "1234*" ;

    System.out.println(str.matches("((\\d{0,2}[*]{0,1}((\\d)|$)){0,}(([*]{0,1}\\d{3,}){1,}(([*]\\d{1,})|(\\d)|($)))(\\d{0,2}[*]{0,1}((\\d)|$)){0,})")) ;
    }
    }
      

  5.   

    (\\d|\\*?|\\d{3,})\\d{3,}(\\d|\\*?|\\d{3,})
      

  6.   

    上面的错了, (\\d|\\*?|\\d{3,})*\\d{3,}(\\d|\\*?|\\d{3,})*这个
      

  7.   

    (\\d|\\*?)*\\d{3,}(\\d|\\*?)*这样更简介一点。。
      

  8.   

    就是这个String reg = "((\\d{0,2}[*]{0,1}((\\d)|$)){0,}(([*]{0,1}\\d{3,}){1,}(([*]\\d{1,})|(\\d)|($)))(\\d{0,2}[*]{0,1}((\\d)|$)){0,})";
    我以前用过的哦