正则表达式和爬虫

这篇具有很好参考价值的文章主要介绍了正则表达式和爬虫。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、正则表达式:

        作用:

字符类(只匹配一个字符)

                细节

预定义字符字符(只匹配一个字符)

                细节

数量词

二、爬虫

        Pattern

        Matcher

                要点说明


一、正则表达式:

        作用:

                1、校验字符串是否满足规则

                2、在一段文本中查找满足要求的内容(爬虫)

字符类(只匹配一个字符)

[abc] 只能是a,b或c
[^abc] 除了这三个之外的任何字符
[a-zA-Z] a-z,A-Z(字符串出现的字符只要在两个范围(包括z,Z)之内就为true)
[a-d[m-p]] a-d或者m-p
[a-z&&[def]] a-z和def的交集
[a-z&&[^bc]] a-z和非def的交集(即:[ad-z])
[a-z&&[^m-p]] a-z和除了m-p的交集(即:[a-[q-z]]])
                细节:如果要求两个范围的交集,那么需要写符号“&&”。如果写成一个&那么此时“&”表示的就不是交集了,而是一个简简单单的“&”符号。
System.out.println("&".matches("[a-z&&[def]]"));//false
System.out.println("&".matches("[a-z&[def]]"));//true

 

预定义字符字符(只匹配一个字符)

. 任何字符
\d 一个数字[0-9]
\D 非数字:[^0-9]
\s 一个空白字符:[\t\n\x0B\f\r]
\S 非空白字符
\w [a-za-Z_0-9]英文、数字、下划线
\W [^\w]一个非单词字符
                细节:在Java中“\”为转义字符,表示改变后面那个字符原本的含义。双引号""在Java中表示字符串的开头或结尾。“\"”表示把"变成普普通通的"(仅仅只是一个符号,不具备任何含义)

“\\”表示把\变成普普通通的\

System.out.println("你a".matches("."));//false
System.out.println("你a".matches(".."));//true
System.out.println("你".matches("\\w"));//false
System.out.println("你".matches("\\W"));//true

数量词

X? X出现一次或零次
X* X出现零次或多次
X+ X出现一次或多次
X{n} X出现正好n次
X{n,} X出现至少n次
X{n,m} X出现至少n次但不超过m次

二、爬虫

        Pattern:表示正则表达式

        Matcher:文本匹配器,作用按照正则表达式的规则去读取字符串,从头开始读取。在大串中去找符合匹配规则的子串

                eg.有如下文本:Java自从95年问世,经历了很多版本,目前企业中用到的最多的是Java8和Java11,因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在不久Java17也会逐渐登上历史舞台。

                要求:找出里面所偶的JavaXX。

代码如下:

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

public class 爬虫demo {
    public static void main(String[] args) {
        String str = "Java自从95年问世,经历了很多版本,目前企业中用到的最多的是Java8和Java11,因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在不久Java17也会逐渐登上历史舞台";
        //获取正则表达式的对象
        Pattern p = Pattern.compile("Java\\d{0,2}");
        //获取文本匹配器的对象
        Matcher m = p.matcher(str);
        //利用循环从头获取,寻找是否有满足规则的子串。
        while(m.find()){
            String s = m.group();
            System.out.println(s);
        }
    }
}

运行结果如下:

正则表达式和爬虫,java,正则表达式,爬虫

                要点说明:代码:

Matcher m = p.matcher(str);

中的——m:文本匹配器的对象

str:大串

p:规则

m:要在str中找符合p规则的小串文章来源地址https://www.toymoban.com/news/detail-798580.html

m.find()会返回一个boolean类型的结果。如果没有,返回false。反之返回true,并在底层记录字串的起始索引和结束索引+1(+1之后再作为结束索引进行传递)
String s = m.group();————方法底层会根据find方法记录的索引进行字符串的获取:subString(起始索引,结束索引);包头不包尾(所以find方法在结束索引位置+1就很有必要)

到了这里,关于正则表达式和爬虫的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫(十)_正则表达式

    什么是正则表达式 正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达

    2024年02月13日
    浏览(35)
  • 爬虫day2 正则表达式作业

    利用正则表达式完成下面的操作: 一、不定项选择题 能够完全匹配字符串\\\"(010)-62661617\\\"和字符串\\\"01062661617\\\"的正则表达式包括(ABD) A. r\\\"(?d{3})?-?d{8}\\\" B. r\\\"[0-9()-]+\\\" 中括号里面的字符出现任意次 C. r\\\"[0-9(-)]*d*\\\" (-) 表示(到)的所有字符 D. r\\\"[(]?d*[)-]*d*\\\" [(]就是一个(; [)-]是)- 能够

    2023年04月08日
    浏览(40)
  • 8.网络爬虫—正则表达式RE实战

    前言 : 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域新星创作者,CSDN实力新星认证 📝​📝​此专栏文章是专门针对网络爬虫基础,欢迎免费订阅! 📝​📝第一篇文章《1.认识网络爬虫》获得 全站热榜第一 ,python 领域热榜第一 , 第四篇文章《4.网络爬虫—

    2023年04月08日
    浏览(77)
  • python爬虫之正则表达式解析实战

    先获取网址,URL:https://www.xiachufang.com/category/40076/ 定位想要爬取的内容 使用正则表达式爬取 导入模块 指定URL UA伪装(模拟浏览器) 发起请求,获取当前页面的数据内容,并使用通用爬虫爬取整个页面 编译正则表达式(提取想要的内容) 解析请求内容 指定图片存储路径 持

    2024年02月08日
    浏览(40)
  • 【python】网络爬虫与信息提取--正则表达式

            正则表达式是用来简洁表达一组字符串的表达式。是通用的字符串表达框架,简洁表达一组字符串的表达式,针对字符串表达“简洁”和“特征”思想的工具,判断某字符串的特征归属。         用处:表达文本类型的特征;同时查找或替换一组字符串;匹配字符串

    2024年02月19日
    浏览(74)
  • 〖Python网络爬虫实战⑨〗- 正则表达式基本原理

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                  python项目实战                 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2023年04月15日
    浏览(89)
  • Java 之正则表达式语法及常用正则表达式汇总

    正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称

    2024年02月09日
    浏览(68)
  • 【Java】 java | 正则 | 正则表达式 | 强密码

    1、需要验证密码强度 2、使用正则 3、正则 4、java示例

    2024年02月07日
    浏览(54)
  • 正则表达式(Java)

    正则表达式是由一些特定的字符组成,代表一个规则,可以用来检验数据格式是否合法,也可以在一段文本中查找满足要求的内容。 如果使用代码检验数据是否正确: 使用正则表达式: String提供了一个匹配正则表达式的方法:  图片来源heimait \\\\d才会当成d使用 (?i)表示忽略大

    2024年02月20日
    浏览(52)
  • Java 正则表达式

    正则表达式的元字符可以大致分为六类: 限定符 选择匹配符 分组组合和反向引用符 特殊字符 字符匹配符 定位符 转义符 \\\\ 符号在检索某些特殊字符的时候可以使用,否则检索不到结果。 在Java中是 \\\\ ,而其他语言则是 。 一般 . * + ( ) $ / ? [ ] { } 都可能需要转义符 符号

    2024年02月21日
    浏览(121)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包