Chinaunix首页 | 论坛 | 博客
  • 博客访问: 741253
  • 博文数量: 225
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2722
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-03 17:32
文章分类

全部博文(225)

文章存档

2019年(7)

2018年(16)

2017年(1)

2016年(26)

2015年(41)

2014年(15)

2013年(119)

我的朋友

分类: Java

2013-12-25 12:53: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  

 

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

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