黑马程序员技术交流社区

标题: 正则表达式中greedy Reluctant Possessive三种数量词的工作机制..... [打印本页]

作者: kid1943    时间: 2014-10-8 11:03
标题: 正则表达式中greedy Reluctant Possessive三种数量词的工作机制.....
昨天在看正则表达式的时候,在查看api发现一条正则表达式有三种写法(即三种不同的量词)但经网上查阅资料对他的原理还是不太清楚。下面贴一些代码:











  1. private static void Demo3() {
  2. String str = "008.109.090.090";
  3. String str = "008.109.090.090";
  4. String reg = "xxx";//0+(\\d+?);0+?(\\d+?);0+*(\\d+?)
  5. Pattern p = Pattern.compile(reg);
  6. Matcher m = p.matcher(str);
  7. while (m.find()) {
  8. System.out.println(m.group());
  9. }
  10. }
复制代码

当"xxx"中分别填入0+(\\d+?);0+?(\\d+?);0++(\\d+?)时结果分别为:
008            
09
09
09      



00
09
09
09

008
09
09
09


通过观察以上的结果,问题来了:就是为什么不同的写法,应该表示同一个意思但为什么打印的结果不同呢?








作者: kid1943    时间: 2014-10-8 17:21
顶。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2