贪婪爬取:在爬取数据时尽可能多的获取数据
非贪婪爬取:在爬取数据的时候尽可能少获取数据
Java中默认贪婪爬取
如果我们在数量词+ *的后面加上问号,那么此时就是非贪婪爬取
练习1:贪婪爬取和非贪婪爬取
Java自从95年问世以来,abbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa
经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来Java17也会逐渐登上历史舞台
需求1:按照ab+的方式爬取ab,b尽可能多获取
需求2:按照ab+的方式爬取ab,b尽可能少获取
package a07regexdemo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo7 {
public static void main(String[] args) {
//Java自从95年问世以来,abbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa
//经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来Java17也会逐渐登上历史舞台
//需求1:按照ab+的方式爬取ab,b尽可能多获取
//需求2:按照ab+的方式爬取ab,b尽可能少获取
String s="Java自从95年问世以来,abbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa" +
"经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两个是长期支持版本," +
"下一个长期支持版本是Java17,相信在未来Java17也会逐渐登上历史舞台";
//需求1:
String regex1="ab+";
//需求2:
String regex2="ab+?";
Pattern p = Pattern.compile(regex1);
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group());
}
}
}
需求1运行结果:
需求2运行结果: