爬虫
package com.mao.two; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo04 { public static void main(String[] args) { String str = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,"+ "因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台"; //Pattern :表示正则表达式 //Matcher:文本匹配器,作用按照正则表达式去读取字符串,从头开始读取 // 在大串中去找符合规则的子串 //获取正则表达式的对象 //method1(str); //1. //获取正则表达式的对象 Pattern p = Pattern.compile("Java\\d{0,2}"); //2./获取文本匹配器的对象 Matcher m = p.matcher(str); //3.利用循环 while (m.find()){ String s = m.group(); System.out.println(s); } } private static void method1(String str) { Pattern p = Pattern.compile("Java\\d{0,2}"); //获取文本匹配器的对象 //m就是文本匹配器 //str:大串 //p:规则 //m要在str字符串中去找符合p规则的小串 Matcher m = p.matcher(str); //拿着文本匹配器从头开始读取,寻找是否有满足规则的子串 //如果没有,方法返回false 有,返回ture 在底层记录子串的起始索引和结束索引+1 boolean b = m.find(); //方法底层会根据find方法记录的索引进行字符串的截取 //subString (起始索引,结束索引)包头不包尾 String s1 = m.group(); System.out.println(s1); //第二次在调用find的时候,会继续读取后面的内容 //读取第二个满足要求的子串,方法会继续返回true //并把第二个子串的初始索引和结束索引+1 b = m.find(); //第二次调用group方法的时候,会根据find方法记录索引再次截取子串 String s2 = m.group(); System.out.println(s1); } }





贪婪 : ab+
非贪婪 :ab+?

浙公网安备 33010602011771号