Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276457
  • 博文数量: 76
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 202
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-25 12:05
文章分类

全部博文(76)

文章存档

2016年(7)

2015年(2)

2014年(67)

我的朋友

分类: Java

2014-04-14 09:41:42

先看两端代码:

Java代码  收藏代码
  1.         String s = "/m/t/wd/nl/n/p/m/wd/nl/n/p/m/wd/nl/n/p/m/v/n";  
  2.         Pattern p = Pattern.compile("/m/t.*/nl/n/p/m");  
  3.         Matcher m = p.matcher(s);  
  4.         while(m.find()) {  
  5.             System.out.println(m.group());  
  6.             System.out.println(m.start());  
  7.             System.out.println(m.end());  
  8.         }  
  9. 运行结果:  
  10. /m/t/wd/nl/n/p/m/wd/nl/n/p/m/wd/nl/n/p/m          
  11. 0  
  12. 40  

 

Java代码  收藏代码
  1.         String s = "/m/t/wd/nl/n/p/m/wd/nl/n/p/m/wd/nl/n/p/m/v/n";  
  2.         Pattern p = Pattern.compile("/m/t.*?/nl/n/p/m");  
  3.         Matcher m = p.matcher(s);  
  4.         while(m.find()) {  
  5.             System.out.println(m.group());  
  6.             System.out.println(m.start());  
  7.             System.out.println(m.end());  
  8.         }   
  9. 运行结果:  
  10. /m/t/wd/nl/n/p/m/wd/nl/n/p/m/wd/nl/n/p/m          
  11. 0  
  12. 40  

 

只是在.*后加了一个“?”, 结果就大不一样了。 可以这样说,如果想贪婪匹配,用.*, 如果想勉强匹配,就用.*?。

阅读(1011) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~