正则表达式54课件讲解.pptxVIP

  • 0
  • 0
  • 约2.51千字
  • 约 26页
  • 2026-01-15 发布于陕西
  • 举报

Python爬虫正则表达式

目录010203什么是正则表达式常用匹配规则常用匹配方法

用requests库获取网页的HTML代码,如何从中获取想要的信息呢?问题:

打开开源中国提供的正则表达式测试工具:/regex/待匹配的文本:Hello,myphonenumberis010andemailiscqc@,andmywebsiteis

正则表达式是处理字符串的强大工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。正则表达式

常用匹配规则

常用匹配规则注意:正则表达式不是Python独有的,它也可以用在其他编程语言中。但是Python的re库提供了整个正则表达式的实现,利用这个库,可以在Python中使用正则表达式。

1、match2、search3、findall4、sub5、compile常用匹配方法

—传入要匹配的字符串以及正则表达式,就可以检测这个正则表达式是否匹配字符串—规则:从字符串的起始位置匹配正则表达式,如果匹配,就返回匹配成功的结果;如果不匹配,就返回Nonematch方法

—实例演示:字符串匹配—输出结果:Match对象group方法:输出匹配到的内容span方法:输出匹配的范围match方法

练习:对给定字符串进行匹配要求:使用正则表达式进行匹配,只提取到电话号码结束,并输出匹配范围待匹配字符串:MyphonenumberisandmynameisPennymatch方法

思考:刚才我们用match方法可以得到匹配到的字符串内容,如果想从字符串中提取一部分内容,怎么办?1、匹配目标—使用括号()将想提取的子字符串括起来—实例演示match方法

2、通用匹配—.*—“.”可以匹配任意字符(除换行符)—“*”代表匹配前面的字符无限次—“.”与“*”组合匹配任意字符—实例演示match方法

3、贪婪与非贪婪1)贪婪匹配—.*会匹配尽可能多的字符—实例演示,观察输出结果思考:这样的匹配方法有什么缺点?导致某些时候匹配结果会莫名缺少一部分match方法

2)非贪婪匹配—.*?—尽可能匹配少的字符—实例演示—注意:①在做匹配的时候,字符串中间尽量使用非贪婪匹配,以免出现匹配结果缺失的情况。②如果匹配的结果在字符串结尾,.*?就有可能匹配不到任何内容了,因为它会匹配尽可能少的字符。match方法

3)修饰符—用一些可选标志修饰符来控制匹配的模式—实例演示,观察输出结果AttributeError—思考:导致异常的原因是什么?—解决方法:加一个修饰符re.S修正后再次运行match方法

常用修饰符re.I:使匹配对大小写不敏感re.L:做本地化识别(locale-aware)匹配re.M:多行匹配,影响^和$re.S:使匹配包括换行在内的所有字符re.U:根据Unicode字符集解析字符。这个标志影响\w、\W、\b和\Bre.X:该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解注:在网页匹配中,较为常用的有re.S和re.Imatch方法

4、转义匹配—当遇到用于正则匹配模式的特殊字符时,在前面加反斜线转义一下即可—实例演示match方法

match方法在使用时需要考虑到开头的内容,这在做匹配时并不方便。它更适合用来检测某个字符串是否符合某个正则表达式的规则。如果想要得到匹配内容,怎么办?—实例引入,观察输出结果思考:

—匹配时会扫描整个字符串,然后返回第一个成功匹配的结果—规则:在匹配时,search方法会依次扫描字符串,直到找到第一个符合规则的字符串,然后返回匹配内容,如果搜索完了还没有找到,就返回None。—实例演示search方法

—用法实例:给定一段待匹配的HTML文本①提取class为active的li节点内部的超链接包含的歌手名和歌名②不加active(也就是匹配

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档