package com.zzh.day2;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class demo6 {
public static void main(String[] args) {
//qulifiers
Pattern p1 = Pattern.compile("(.{3,10}?)[0-9]");//reluctant quantifier,一次吞最少的
Pattern p2 = Pattern.compile("(.{3,10})[0-9]");//greedy quantifier,一次吞最多的
Pattern p3 = Pattern.compile("(.{3,10}+)[0-9]");//possessive quantifier 一次吞最多的,不吐
String string = "aaaa65565bbb";
Matcher m1 = p1.matcher(string);
Matcher m2 = p2.matcher(string);
Matcher m3 = p3.matcher(string);
if (m1.find()) {
System.out.println(m1.group()+" "+m1.start()+"-"+m1.end());
}else{
System.out.println("m1 not matche");
}
if (m2.find()) {
System.out.println(m2.group()+" "+m2.start()+"-"+m2.end());
}else{
System.out.println("m2 not matche");
}
if (m3.find()) {
System.out.println(m3.group()+" "+m3.start()+"-"+m3.end());
}else{
System.out.println("m3 not matche");
}
}
}
输出结果:
aaaa6 0-5
aaaa65565 0-9
m3 not matche
本次测试的部分是
Pattern p1 = Pattern.compile("(.{3,10}?)[0-9]");//reluctant quantifier,一次吞最少的,慢慢吐,慢慢吞
Pattern p2 = Pattern.compile("(.{3,10})[0-9]");//greedy quantifier,一次吞最多的,慢慢吐,慢慢吞
Pattern p3 = Pattern.compile("(.{3,10}+)[0-9]");//possessive quantifier 一次吞最多,不吐,会吞
细小差别,细心体会。动手撸一段代码,就明白了。