Pattern pattern = Pattern.compile("1_12_._._3");
java.util.regex.Matcher matcher = pattern.matcher("1_12_0_102_3");
boolean find = matcher.find();
if(find) {
System.err.println("ok");
} else {
System.err.println("false");
}
这个代码会打印false,我想要的匹配是除了.的部分是任意字符,其他部分都要全部匹配,
这个正则该怎么写啊
------解决思路----------------------
1_12_.*?_.*?_3
------解决思路----------------------
Pattern pattern = Pattern.compile("1_12_.+_.+_3");
------解决思路----------------------
1_12_(.)+_(.)+_3,可以参考http://blog.csdn.net/skywalker_only/article/details/17608411
------解决思路----------------------
1_12_.+_.+_3
这样,一个点(.)表示匹配一个任意字符,后面加一个+表示一个或多个。如果你确信第一个点的位置只有一个字符,第二个点处有三个字符可以写1_12_._.{3}_3,花括号里的数字表示前面的字符(.)重复3次。
另外,如果你确信一定匹配的是数字,可以用\d来代替点(.)更准确:
Pattern pattern = Pattern.compile("1_12_\\d{1}_\\d{3}_3");
------解决思路----------------------
1_12_([\s\S]*)_([\s\S]*)_3