按照以前的课程安排,这次课程应该讲python基础第十六讲爬虫,可是若是正则一笔带过你们可能仍是没办法写出本身想要实现的结果,因此把正则匹配详解提早学习一下,这次课程的学习路线会翻译官方的re模块文档,而且筛选出重点知识,完善文章中没有的DEMO。python
这次课程咱们会系统的学习一下python的正则表达式,以及能够根据本身的需求写出正确的正则表达式。正则表达式
15-20分钟,建议每一个表达式跟着实践一下,加深印象express
Python中正则表达式 在 re 模块 — Regular expression operations学习
Python中的re模块提供与Perl相似的正则表达式匹配操做,可是要注意的是翻译
须要注意的是:正则匹配时 表达式和要查询的字符串能够是 unicode字符串,也但是8-bit 字符串,可是两种模式不能够混合使用,也就是说 表达式和要查询的字符串必须一致。3d
.(点): 默认模式下,.能够匹配除了换行外的全部字符,若是须要匹配换行,能够传参 re.DOTALL。code
运行结果:blog
^:只匹配字符串的开始位置,可使用re.MULTILINE(匹配多行),匹配每一行的开始位置。教程
代码中每一行的开头都有ae字符串,因此开启多行模式后,会匹配两个结果。unicode
运行结果:
$ : 与^相反,匹配字符串的结束位置,可使用re.MULTILINE(匹配多行),匹配每一行的结尾位置。
运行结果:
运行结果:
分析:c*表示,匹配字符"c"0次或者屡次,也就是说会匹配 a,ac。
运行结果:
分析:匹配字符a而且c一次或者屡次,因此会匹配ac或者accccc
? : 匹配0次或1次,非贪婪方式
运行结果:
分析:表达式“ac?” 匹配字符a或者ac(?只匹配0次或者1次,比较懒惰,不像上面的+或者*会匹配屡次)
.? : 这三个特殊符号上面都讲过了,.是匹配任意字符匹配0次或者屡次,连在一块儿使用也就是匹配全文了,加上?号,非贪婪模式匹配,将尽量少的匹配结果。
匹配结果:
正则匹配的语法是通用的,你们学会这些特殊字符,不管什么语言都能迅速入门。因此有必要好好学习一下。
Python的基础教程暂时告一段落。