Pattern pattern = Pattern.compile("1_12_.+_.+_3");

解决方案 »

  1.   

    1_12_(.)+_(.)+_3,可以参考http://blog.csdn.net/skywalker_only/article/details/17608411
      

  2.   

    1_12_.+_.+_3
    这样,一个点(.)表示匹配一个任意字符,后面加一个+表示一个或多个。如果你确信第一个点的位置只有一个字符,第二个点处有三个字符可以写1_12_._.{3}_3,花括号里的数字表示前面的字符(.)重复3次。
    另外,如果你确信一定匹配的是数字,可以用\d来代替点(.)更准确:
    Pattern pattern = Pattern.compile("1_12_\\d{1}_\\d{3}_3");
      

  3.   


    那确认两个.处都只有一个字符  1_12_._._3这样写匹配不上啊
    Pattern pattern = Pattern.compile("1_12_._._3");
    java.util.regex.Matcher matcher = pattern.matcher("1_12_0_1_3");
    boolean find = matcher.find();
    if(find) {
    System.err.println("ok");
    } else {
    System.err.println("false");
    }
    这个程序我运行了一下,输出ok。