Java爬虫

java 复制代码
package Pachong;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regx {
    public static void main(String[] args) {
        String str ="Java自从95年问世以米,经历了很多版本,目前企业中用的最多的是Java8和Java11,"+
                "因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台";
//        method1(str);
        Pattern p = Pattern.compile("Java\\d{0,2}");
        Matcher m = p.matcher(str);
        while (m.find()){
            String s1 = m.group();
            System.out.println(s1);
        }

    }

    private static void method1(String str) {
        //Pattern:表示正则表达式
        //Matcher:文本匹配器,作用按照正则表达式的规则去读取字符串,从头开始读取
        //获取正则表达式对象
        Pattern p = Pattern.compile("Java\\d{0,2}");
        //获取文本匹配器的对象
        //m:文本匹配器的对象
        //str:大串
        //p:规则
        //m要在石头人中找符合p规则的小串
        Matcher m = p.matcher(str);
        //拿着文本匹配器从头开始读取,寻找是否有满足规则的字串
        //如果没有,方法返回false
        //如果有,返回true。在底层记录字串的起始索引和结束索引+1
        //0,4
        boolean b = m.find();
        //方法底层会根据find方法记录的索引进行字符串的截取
        // substring(起始索引,结束索引);包头不包尾
        // (0,4)但是不包含4索引
        // 会把截取的小串进行返回
        String s1 = m.group();
        System.out.println(s1);
    }
}

有?:和没有这个代表的是衔接的意思

?!这个是不需要有后面的这些数字意思

abbbbbbbbbbbbbaaaaaaaaaaaaaa

贪婪爬取:在爬取数据的时候,尽可能的多获取数据 ab+

非贪婪爬取:在爬取数据的时候,尽可能的少获取数据 ab+?

分组

每组是有组号的,也就是序号

规则1:从1开始,连续不间断

规则2:以左括号为基准,最左边的是第一组,其次为第二组,以此类推

捕获分组:

后续还要继续使用本组数据

正则内部使用:\\组号

正则外部使用:$组号

非捕获分组:

分组之后不需要再用本组数据,仅仅是把数据括起来

相关推荐
爱写bug的野原新之助2 分钟前
爬虫之补环境脚本:脱环境
javascript·爬虫·原型模式
放下华子我只抽RuiKe53 分钟前
机器学习核心算法全景指南
人工智能·python·深度学习·算法·机器学习·机器人·交互
zdl6863 分钟前
spring Profile
java·数据库·spring
m0_706653234 分钟前
数据倾斜全面解析与解决方案探析
java
程序员飞哥7 分钟前
有个同事因为恐惧 AI 要离职了
java·后端·程序员
vanvivo8 分钟前
springboot3.X 无法解析parameter参数问题
java
zhougl99613 分钟前
Maven build配置
java·linux·maven
时寒的笔记15 分钟前
逆向入门1整理2025.3.18
javascript·python
喵喵蒻葉睦15 分钟前
力扣 hot100 最小覆盖子串 哈希表 滑动窗口 Java 题解
java·算法·leetcode·哈希算法·散列表·滑动窗口
SimonKing19 分钟前
AI时代,一个Skill如何让Java项目结构自动化?
java·后端·程序员