public class RegexQuantifiers {
public static void main(String[] args) {
Pattern p1 = Pattern.compile("(.{3,10})[0-9]");
Pattern p2 = Pattern.compile("(.{3,10}?)[0-9]");
Pattern p3 = Pattern.compile("(.{3,10}+)[0-9]");
String s = "aaaa5bbbb6";
Matcher m1 = p1.matcher(s);
Matcher m2 = p2.matcher(s);
Matcher m3 = p3.matcher(s);
System.out.println("输入的字符串:" + s + "\n" + "匹配规则p1" +p1 + "\n"+ "匹配规则p2" + p2 + "\n"+ "匹配规则p3" +p3);
if (m1.find()) {
System.out.println(m1.start()+"-"+m1.end() + "p1为贪婪者,一下吃掉10个,但是还能吐");
}else {
System.out.println("m1 not match 此为贪婪者,但是还能吐");
}
if (m2.find()) {
System.out.println(m2.start()+"-"+m2.end() + "p2为懒惰者,只吃三个,但是还能吃");
}else {
System.out.println("m2 not match,此为懒惰者,但是还能吃");
}
if (m3.find()) {
System.out.println(m3.start()+"-"+m3.end());
}else {
System.out.println("m3 not match,此为顽固者,吃掉10个,绝不往外吐");
}
}
}