关于正折表达式,请大家帮忙看看,多谢了!
我想匹配这样的字符串:
a1w2/1234/
正折如下:
\\S{0,4}/\\d{0,4}现在我想表达整个字符串总长度不超过10,如果d{0,4}是0,那么S{0,4}变成S{0,8}也是允许的,反过来也一样,就是说以下都是被允许的:
a1w2/1234/
a1w2er34//
/01231234/
a1w/12344/
a1w3w/123/
就是说控制总长度,请问如何写这个正折表达式?多谢了!

解决方案 »

  1.   

    if(sr.length() <= 10 && sr.matches("\\S{0,8}/\\d{0,8}/")){
      System.out.println("true");
     }else{
      System.out.println("flase");
    }
      

  2.   

    楼主没必要那样吧 没必要死钻牛角尖 能达到目的就好 简洁明了最好 如果你非要用正则写 那就像2楼那位朋友给出的那样写   再不就这样
    if(sr.matches("([\\S]|[\\d]|[/]){0,10}") && sr.matches("\\S{0,8}/\\d{0,8}/")){
      System.out.println("true");
    }else{
      System.out.println("flase");
    }
    如果字符串不超过10就是上面那么写{0,10} 如果是固定必须10位 那就是{10}
    应该可以了吧 上面是2个正则 据我所知 正则表达式里只有“或”没有“与” 因此用1个正则表达式 我感觉是不可能  而且我感觉如果用“穷举法”那就没有任何的意义了