爬虫

 

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+?

 

posted @ 2022-08-20 09:00  是貓阿啊  阅读(40)  评论(0)    收藏  举报