之前专利推倒重写,心情沮丧了三秒,开始新探索。虽然已经用了正则表达式这块,但总归是不是很熟悉。往在小破站上搬运一定资源后有同学者来讨论遇到的问题。还得倒回去补课才能尝试解决,所以趁着放弃回家的周末,干脆把这部分刷过去好了。使用的教材是【学个大块儿】为了学好python需要从脚下做起,P正则表达式,微信读书出的网页版,试水。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

1.前言

首先介绍一下:什么是正则表达式

 【学个大块儿】为了学好python需要从脚下做起,P正则表达式

这个模块就是re。为什么需要用正则表达式?怎么用?

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

2.正则表达式的规则

2.1 基本符号

  • . 点号 - 一对一的取代!可以比对 中英文标点符号 数字汉字英文(应该是大小写不限)【学个大块儿】为了学好python需要从脚下做起,P正则表达式
  • * 星号-表示次数【0-无限】,前面子表达式的意思是,子表达式可以是由字符、一个或多个符号组成的。  

        【学个大块儿】为了学好python需要从脚下做起,P正则表达式

  • ?问号-0|1,有或者无,都成立。

          【学个大块儿】为了学好python需要从脚下做起,P正则表达式 

这里上面三个基本符号组合起来也是个常用搭配。

         【学个大块儿】为了学好python需要从脚下做起,P正则表达式 

  • \反斜杠-不能单独出现!整个python里面!和其他打组合。

          【学个大块儿】为了学好python需要从脚下做起,P正则表达式

这里加一个转义字符表

【学个大块儿】为了学好python需要从脚下做起,P正则表达式 

  • \d 数字 -一个就是一个,另外不知道多少个的话 用 “\d*”别问为什么,往上翻*的用法。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

  • ( )小括号-提取用它!

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

3.在python中用它!

【学个大块儿】为了学好python需要从脚下做起,P正则表达式先摆哈子两个教学视频,讲得真好没有广告。如果书看不懂的话这里可以用这个。

然后开始进入正轨。

3.1 findall函数

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

借书笔记,但这里还是要重复标记一下,findall结果是个列表,[ ],用这样的python容器去装。

多个内容的话,仍然是个列表,只不过呢,列表元素变为元组。比如说书上举的那个例子。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

这里接着需要标注一个很重要的信息,对于中英文标点符号的匹配

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

然后就是flag的使用,可默认缺省,也可以配合其他打一套组合拳。比如对于换行符的吞吐,可以在匹配之前去掉,也可以抓到后再来清洗,与re.S有关,掌握即可,实际应用需要练习。

3.2 search函数

还是借笔记操作,毕竟重复打字,只能让我成为一个打字工。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

之前的采集部分已经用了这个函数,因为当时的分割思想,所以也能实现爬到要的东西。但是如果有更好的方式,确实可以换一下。毕竟代码从写出来那一刻起,就在不断的优化的过程中。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式放课,便于自己学,也便于其他人。

这里搜索结果是,匹配成功,正则表达式对象,匹配失败,None。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

3.3 【学个大块儿】为了学好python需要从脚下做起,P正则表达式

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

3.4 提取技巧

①少一点compile,比如用了findall,已经带了compile方法,可以别用了,重复使用。

对着re文件学习各个方法。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

②先抓大在抓小

为了说明这个规则,老师讲了一个符合大规则下,两种规则的案例。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

比如说,上面的这几条信息。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式为了采集到正确的信息,使用了姓名:(.*?)\n 得到这样的结果

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

然后解决这部分的重点应该在于 ,先拿到大整体,再从小规则中获取想要的信息。也就是老板说的定位,再解析。

③括号内和括号外

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

也就是再说,括号里用了,后面采集内容中也会有。


到这,书上内容就完了。翻了一下小破站上的视频,放两三个播放量比较高的,还有这本书的链接和豆瓣评分。

【参考来源】

1.python爬虫开发:从入门到实战(微课版),使用的网页版微信读书。

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

2.官方文档re — 正则表达式操作¶

3.详解Python正则表达式

 【学个大块儿】为了学好python需要从脚下做起,P正则表达式

4.【公开课】正则表达式入门  淘宝大学

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

【学个大块儿】为了学好python需要从脚下做起,P正则表达式

Regexbuddy        -       RedExBuilder           -          正则表达式在线测试 - 站长工具 

5.Regex Golf 正则表达式练习

6.正则强化练习 https://regexr.com/4opvn

相关文章:

  • 2021-12-09
  • 2021-05-06
  • 2021-04-24
  • 2021-06-15
  • 2021-10-23
  • 2021-05-16
  • 2021-09-05
猜你喜欢
  • 2021-12-17
  • 2021-10-17
  • 2021-04-09
  • 2021-06-30
  • 2021-07-25
  • 2022-01-08
  • 2022-12-23
相关资源
相似解决方案