Python爬虫入门,如何使用正则表达式

按照之前的课程安排,此次课程应该讲python基础第十六讲爬虫,但是如果正则一笔带过大家可能还是没办法写出自己想要实现的结果,所以把正则匹配详解提前学习一下,此次课程的学习路线会翻译官方的re模块文档,并且筛选出重点知识,完善文章中没有的DEMO。

学完此次课程,我能做什么?

此次课程我们会系统的学习一下python的正则表达式,以及可以根据自己的需求写出正确的正则表达式。

学习此次课程,需要多久?

15-20分钟,建议每个表达式跟着实践一下,加深印象

课程内容

Python中正则表达式 在 re 模块 — Regular expression operations

Python中的re模块提供与Perl类似的正则表达式匹配操作,但是要注意的是

需要注意的是:正则匹配时 表达式和要查询的字符串可以是 unicode字符串,也可是8-bit 字符串,但是两种模式不可以混合使用,也就是说 表达式和要查询的字符串必须一致。

正则表达式特殊字符:

.(点): 默认模式下,.可以匹配除了换行外的所有字符,如果需要匹配换行,可以传参 re.DOTALL。

image

运行结果:

image

^:只匹配字符串的开始位置,可以使用re.MULTILINE(匹配多行),匹配每一行的开始位置。

image

代码中每一行的开头都有ae字符串,所以开启多行模式后,会匹配两个结果。

运行结果:

image

$ : 与^相反,匹配字符串的结束位置,可以使用re.MULTILINE(匹配多行),匹配每一行的结尾位置。

image

运行结果:

image
  • : 匹配0个或多个的表达式
image

运行结果:

image

分析:c*表示,匹配字符"c"0次或者多次,也就是说会匹配 a,ac。

  • : 匹配1个或多个的表达式
image

运行结果:

image

分析:匹配字符a并且c一次或者多次,所以会匹配ac或者accccc

? : 匹配0次或1次,非贪婪方式

image

运行结果:

image

分析:表达式“ac?” 匹配字符a或者ac(?只匹配0次或者1次,比较懒惰,不像上面的+或者*会匹配多次)

.? : 这三个特殊符号上面都讲过了,.是匹配任意字符匹配0次或者多次,连在一起使用也就是匹配全文了,加上?号,非贪婪模式匹配,将尽可能少的匹配结果。

image

匹配结果:

image

小结

正则匹配的语法是通用的,大家学会这些特殊字符,无论什么语言都能迅速入门。所以有必要好好学习一下。

接下来学习什么?

Python的基础教程暂时告一段落。

关注公众号,回复 Python基础 下载全部代码+PDF版电子书

image
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 23,354评论 4 46
  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 12,117评论 0 99
  • 搞懂Python 正则表达式用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一...
    厦热阅读 5,589评论 0 2
  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 9,499评论 0 13
  • 【道德经妙解序文】 道德经流传两千五百多年,版本很多种,为道德经注解的超过一千种版本。虽注解的版本很多,一般人还是...
    爱相续阅读 4,983评论 0 0

友情链接更多精彩内容