0%

python爬虫实例之正则表达式匹配数据

正则表达式是什么

正则表达式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个”规则字符串”,这个”规则字符串”用来表达对字符串的一种过滤逻辑。

常用语法

  • re.compile(编译)
  • pattern.match(从头找一个)
  • pattern.search(找一个)
  • pattern.findall(找所有)
  • pattern.sub(替换)

编译就相当于把规则拷贝一个副本到本地,待匹配的内容较多时,使用预先编译的规则,匹配速度更快。
使用方法:

  • 第一步:导入re模板import re,编译规则 pattern=re.compile("规则",re.S)
  • 第二步:使用编译的规则 pattern.findall("待匹配字符串")
  • 注意:匹配规则、匹配模式,都要在编译的时候定义好。使用编译规则的时候,无法更改匹配模式。

image.png

举例

  • re.S模式,等价于re.DOTALL
    image.png
  • \d(数字),\w(字母),\s(空格)
    \D(非数字),\W(非字母),\S(非空格)
    image.png
  • 贪婪匹配vs非贪婪匹配
    贪婪匹配:顾名思义,匹配更多字符串,只返回一个结果。
    非贪婪匹配:一旦匹配上,就立刻返回结果,继续匹配下一个。
    image.png
    image.png
  • re.sub替换字符串
    image.png
  • re.compile编译
    image.png
  • 原始字符串r
    原始字符串r的作用,就是去掉转义的影响,标记了r,表示这个字符串里面不含有转义字符,你看到的就是真相,不需要转义。
    image.png
  • 截取匹配的内容
    返回结果是括号内匹配的内容。
    image.png

总结

基本的语法并不难,但是这些基本的语法可以组成复杂的匹配规则。基础打扎实先~

-------------本文结束感谢您的阅读-------------