正则表达式 如果是整数最多7位,如果是小数,小数点前最多7位,小数点后最多两位怎么写??

解决方案 »

  1.   

    为什么是\d  怎么不是\\d呢
    我匹配邮箱用的"\\w{2,20}@\\w+\\.(com|cn|net)"
    里面要是写成\w会出错的,windows系统,求解
      

  2.   

     不包括复数,而且小数末尾允许0String sourceString = "-890";
    String regex = "^[1-9]\\d{1,6}(\\.\\d{1,2})?$";
    if(sourceString.matches(regex)) System.out.println("correct!");
      

  3.   

    修改一下LS的
    String regex = "[-]?([0]|[1-9]\\d{0,6})([.]\\d{1,2})?";
    System.out.println("-012.12".matches(regex));
    System.out.println("-0.12".matches(regex));
    System.out.println("-1.12".matches(regex));
    System.out.println("-1234567.12".matches(regex));
    System.out.println("-12345678.12".matches(regex));
    System.out.println("-1234567".matches(regex));
      

  4.   


    只是正数,而且小数末位允许0
    Java code
    String sourceString = "0";
    String regex = "^[1-9]\\d{0,6}(\\.\\d{1,2})?$";
    if(sourceString.matches(regex)) System.out.println("correct!");

    不包括负数,但包括0,而且小数末位允许0

    String sourceString = "10000";
    String regex = "^[1-9]\\d{0,6}(\\.\\d{1,2})?$|^0$";
    if(sourceString.matches(regex)) System.out.println("correct!");

    包括负数,包括0,而且小数末位允许0

    String sourceString = "10000";
    String regex = "^\\-?[1-9]\\d{0,6}(\\.\\d{1,2})?$|^0$";
    if(sourceString.matches(regex)) System.out.println("correct!");



      

  5.   


    //上面都错了,写这个吧,比较完美
    String sourceString = "0.2";
    String regex = "^\\-?[1-9]\\d{0,6}(\\.\\d{1,2})?$|^0(\\.\\d{1,2})?$";
    if(sourceString.matches(regex)) System.out.println("correct!");
      

  6.   

    还是忘了‘-’String regex = "^\\-?[1-9]\\d{0,6}(\\.\\d{1,2})?$|^\\-?0(\\.\\d{1,2})?$";
      

  7.   

    应该是这样:
    \\d{1,7}(\\.\\d{1,2})?$
    因为“\”是转义字符,所以应该是"\" + "\d"。