| 
 
| 昨天在看正则表达式的时候,在查看api发现一条正则表达式有三种写法(即三种不同的量词)但经网上查阅资料对他的原理还是不太清楚。下面贴一些代码: 
 
 
 
 
 
 
 
 
 
 
 
 复制代码private static void Demo3() {
String str = "008.109.090.090";
String str = "008.109.090.090";
String reg = "xxx";//0+(\\d+?);0+?(\\d+?);0+*(\\d+?)
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group());
}
}
当"xxx"中分别填入0+(\\d+?);0+?(\\d+?);0++(\\d+?)时结果分别为:
 008
 09
 09
 09
 
 
 
 00
 09
 09
 09
 
 008
 09
 09
 09
 
 
 通过观察以上的结果,问题来了:就是为什么不同的写法,应该表示同一个意思但为什么打印的结果不同呢?
 
 
 
 
 
 
 
 
 | 
 |