正则表达式和爬虫

一、正则表达式
在这里插入图片描述
java

		String str =  "1324";
        boolean matches = str.matches("\\d{4}");

在这里插入图片描述

二、爬虫
1.爬取所有的java关键字,例如java,java8,java11,java17

		String str2 = "java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11,因为这两个是长期支持版本,下一个长期支持版本是java17,相信不久的将来java17也会面试";
        Pattern p = Pattern.compile("java\\d{0,2}");
        Matcher matcher = p.matcher(str2);
        while (matcher.find()){
            String group = matcher.group();
            System.out.println(group);

        }

在这里插入图片描述
2.条件爬取——获取所有java8和java11的前面java部分

		String str2 = "java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11,因为这两个是长期支持版本,下一个长期支持版本是java17,相信不久的将来java17也会面试";
        Pattern p = Pattern.compile("java(?=8|11)");
        Matcher matcher = p.matcher(str2);
        while (matcher.find()){
            String group = matcher.group();
            System.out.println(group);

        }

在这里插入图片描述
3.条件爬取——获取所有java8和java11

String str2 = "java自从95年问世以来,经历了很多版本,目前企业中用的最多的是java8和java11,因为这两个是长期支持版本,下一个长期支持版本是java17,相信不久的将来java17也会面试";
        Pattern p = Pattern.compile("java(?:8|11)");
        Matcher matcher = p.matcher(str2);
        while (matcher.find()){
            String group = matcher.group();
            System.out.println(group);

        }

在这里插入图片描述
4.贪婪爬取
+默认就是贪婪爬取

String str2 = "java自从95年问世以来,abbbbbbbbbbbbbbbaaaaaaaaaaa,经历了很多版本,目前企业中用的最多的是java8和java11,因为这两个是长期支持版本,下一个长期支持版本是java17,相信不久的将来java17也会面试";
        Pattern p = Pattern.compile("ab+");
        Matcher matcher = p.matcher(str2);
        while (matcher.find()){
            String group = matcher.group();
            System.out.println(group);

        }

在这里插入图片描述

5.非贪婪爬取

String str2 = "java自从95年问世以来,abbbbbbbbbbbbbbbaaaaaaaaaaa,经历了很多版本,目前企业中用的最多的是java8和java11,因为这两个是长期支持版本,下一个长期支持版本是java17,相信不久的将来java17也会面试";
        Pattern p = Pattern.compile("ab+?");
        Matcher matcher = p.matcher(str2);
        while (matcher.find()){
            String group = matcher.group();
            System.out.println(group);

        }

在这里插入图片描述
6.分组
在这里插入图片描述
6.1捕获分组
6.1.1内部使用
java中\1表示复用第一组

String str =  "a1324a";
        boolean matches = str.matches("(.)\\d{4}\\1");
        System.out.println(matches);

6.1.2外部使用
在这里插入图片描述
6.2非捕获分组,既不计算分组
在这里插入图片描述

网络爬虫
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值