String mess="AA1232";



Pattern p =Pattern.compile("[A-Z][A-Z][0][1-9][0][1-9]||[A-Z][A-Z][1][0-2][0][1-9]");
Matcher mm = p.matcher(mess);

 if(mm.matches())
 {
   System.out.println("正确");
 }
 else
 {
  System.out.println("不正确");}

}
为什么空值是正确的表达式?
表达式或是用||这个符号吗?
谢谢!

解决方案 »

  1.   

    Pattern p =Pattern.compile("[A-Z]{2}([0][1-9][0][1-9]||[1][0-2][0][1-9])");
      

  2.   

    冗余了Pattern p =Pattern.compile("[A-Z]{2}([0][1-9]||[1][0-2])[0][1-9]");
      

  3.   

    不过我猜你想要的是这个Pattern p =Pattern.compile("[A-Z]{2}(0[1-9]{1}||1[0-2]{1})0[1-9]{1}");
      

  4.   

    你的空字符为什么可以匹配的原因是,||这个符号你用错了
    JAVA正则里或是|
    你多写了一个,所以两个|中间的内容就是空字符,所以你的空可以匹配。
      

  5.   

    为什么空值是正确的表达式?
    表达式或是用||这个符号吗?空值是最小正则表达式之一,当使用闭包时say a*,都包含对""的匹配。
    或是用|这个符号,a||b意味匹配a、""和b。