昨天在看正则表达式的时候,在查看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
通过观察以上的结果,问题来了:就是为什么不同的写法,应该表示同一个意思但为什么打印的结果不同呢?
|
|