package Reptile_package; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Reptile_demo3 { public static void main(String[] args) { /*有如下文本,请按照要求爬取数据: java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11, 因为这两个是长期支持版本,下一个长期支持版本是java17,相信在未来不久java17也会逐渐登上历史舞台。 需求1:爬取版本号为8,11,17的java文本,但是只要java,不显示版本号。 需求2:爬取版本号为8,11,17的java文本。正确爬取结果为:java8,java11,java17,java17 需求3:爬取除了版本号为8,11,17的java文本 */ String s = "java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11," + "因为这两个是长期支持版本,下一个长期支持版本是java17,相信在未来不久java17也会逐渐登上历史舞台。"; //1、定义正则表达式 // ?理解为前面的数据java // =表示在java后面要跟随的数据 //但是在获取的时候,只获取前半部分 //需求1: String regex1 = "((?i)java)(?=8|11|17)"; //需求2: String regex2 = "((?i)java)(8|11|17)"; String regex3 = "((?i)java)(?:8|11|17)"; //需求3: String regex4 = "((?i)java)(?!8|11|17)"; Pattern p = Pattern.compile(regex4); Matcher m = p.matcher(s); while (m.find()) { System.out.println(m.group()); } } }