用正则表达式做爬取--java进阶day06

1.String类中与正则有关的方法

replaceAll方法中要填入两个正则表达式,第一个是我们要修改的字符串,第二个则是我们要改成以后的字符串

如下图,出师表中存在很多数字,我们要删去这些数字,就可以使用该方法


2.使用正则表达式做爬取

如图,我们要从这些文字中获取有效的信息,就可以使用正则表达式做爬取,将有效信息搞出来

1.先制定正则表达式,将对应的有效内容写为正则表达式,方便获取

2.使用Pattren类封装对象

Pattern类是专门给正则表达式做封装的类,里面有一个compile方法,可以将我们指定的正则表达式封装成Pattern对象


3.调用matcher方法获取到匹配器对象

封装正则表达式的目的就是为了调用到matcher方法,将要爬取的字符串放入该方法,该方法会返回一个匹配器对象


4.通过匹配器对象调用find和group方法进行爬取

find方法负责查找要爬取的内容里面是否有符合正则表达式,如果有就会返回true


group方法负责将find方法找到的符合正则表达式的内容进行打印输出


需要注意的是,group方法是调用一次就爬取一次,所以要想把所有的内容都爬取出来就要调用多次

而且group方法只能爬取到find找到的内容,因此需要find加group配合使用才能将所有的内容爬取,否则调用多个group,爬取到的也只是find找到一次的内容

当搭配使用时


5.爬取代码优化

实际生活中,我们不知道有多少内容要爬取,也就不知道要调用多少次find和group,但我们可以利用find的一个特点来优化代码

如图,当我们将要爬取的内容修改为两个有效内容,我们调用了3次find方法,第三次时就返回了false

find方法如果找到了就会返回true,没找到有效内容就会返回false,因此我们可以设计一个while循环

posted @ 2025-03-15 09:53  直実  阅读(18)  评论(0)    收藏  举报