东尧爱分享
这是东尧每天一篇文章的第32天
东尧写文章的目标:分享东尧的经验和思考,帮你获取物质和精神两方面幸福。
在python爬虫中,我们经常会需要进行字符串的匹配,而正则表达式是一种用来匹配字符串的强有力的武器。
它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。今天的教程先带大家认识一下什么是正则表达式。
1
正则表达式
正则表达式(RE)为高级文本模式匹配,以及搜索-替代等功能提供了基础。
正则表达式是一些由字符和特殊符号组成的字符串,他们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配一个有相似特征的字符串集合,因此能按某种模式匹配一系列有相似特征的字符串。
2
正则表达式使用到的元字符(常用的)
贪婪模式匹配说明:贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。
3
正则表达式使用案例
sublime如何开启匹配模式?ctrl+H键,然后点亮.*和Aa按钮:如下图:
实例
1
literal:匹配字符串的值
2
|:匹配前面或正则表达式
3
. :匹配任何一个字符(换行符除外)。一个“.”匹配一个字符
4
^:匹配字符串的开始
5
* :匹配前面出现的正则表达式零次或多次, 贪婪模式(尽可能多的匹配)
需要注意的是,匹配“0次或多次”中的0次是什么意思呢?我们注意看上图中“q*.....”的匹配结果。尽管原始文本中并没有“q”出现过,但匹配结果仍然可以匹配出5个字符。所以*的匹配是0次或多次。相反,“+”的匹配则是1次或多次,也就是说+号前面的字符一定要出现在原始文本中,才能够匹配出来,具体我们看下面的案例。
6
+:匹配前面出现的正则表达式一次或多次,贪婪模式
还有很多案例就不一一列举了,正则表达式在python中有非常重要的作用,在明天的教程中,将用python实际案例为大家讲解re模块和正则表达式应用:如何用正则表达式提取网页标题、URL等等爬虫内容。
领取专属 10元无门槛券
私享最新 技术干货