File size: 1,686 Bytes
0284885 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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());
}
}
}
|