0
点赞
收藏
分享

微信扫一扫

Python高级——09

八怪不姓丑 2022-04-23 阅读 34
python

9.1. 今日目标

9.2.【了解】正则表达式概述

  • 正则表达式概念:规则表达式(一套特殊的规则)
  • 正则表达式的作用:
    • 验证数据的有效性(查找)
    • 替换文本内容
    • 从字符串中提取子字符串(爬虫思想)

9.3.【了解】测试工具介绍

  • regexbuddy 用来测试 正则表达式的正确性
  • 使用:
    • 选择 python3.6
    • test 选项卡

9.4.【记忆】匹配单个字符

  • . 匹配任意单个字符(除\n)

  • [] 列举,匹配[] 中列举的内容

  • \d 匹配所有的数字 等价于 [0-9]

  • \D 非数字

  • \s 空格

  • \S 非空格

  • \w 匹配 字母、数字、下划线

  • \W 非数字、非字母、非下划线

9.5.【记忆】匹配多个字符

  • * 表示前一个字符出现 0次或者 无限次

  • + 表示 前一个字符出现 1次或者 无限次

  • ? 表示 前一个字符出现 0 次或者 1次 (要不不出现,要不只能出现一次)

  • {m} 表示前一个字符,连续出现 m次

  • {m,n} 表示前一个字符,连续出现最少m次,最多n次

9.6.【记忆】匹配开头结尾

  • ^ 表示 匹配 以后一个字符开头

  • $ 表示匹配 以前一个字符结尾

9.7.【理解】re模块操作

  • re模块的作用: python提供的用于正则操作的模块

  • re模块的使用步骤:

    • 导入模块

    • 使用match() 方法进行检测

    • 判断是否检测/匹配成功

    • 取出匹配的具体内容

9.8.【理解】匹配分组之"|"

  • | 的作用:或者关系,多个正则表达式满足任意一个都可以

9.9.【理解】匹配分组之"()"

  • 分组,整体匹配

  • 提取子字符串

9.10.【理解】匹配分组之‘\’

  • 引用 分组

    \1 表示引用第一组

    # result = re.match("<([a-zA-Z0-9]+)>.*</\\1>", "<html>asdbasldfj</html>")
    result = re.match("<([a-zA-Z0-9]+)><([a-zA-Z0-9]+)>.*</\\2></\\1>", "<html><h1>asdbj</h1></html>")
    
  • 分组起别名

    • 起名

    • 引用别名

    • 整体代码:

9.11.【理解】re模块的高级用法

  • search() 在需要匹配的字符串中搜索要匹配的内容

  • findall() 在需要匹配的字符串中查找所有满足正则的内容,返回值是列表

  • sub(“正则表达式”, “新的内容”, “要替换的字符串”) 字符串替换(按照正则,查找字符串并且替换为指定的内容)返回值是替换后的字符串

  • split(“正则表达式”, “待拆分的字符串”) 按照正则拆分字符串,返回值是一个列表

9.12.【理解】贪婪和非贪婪

  • 贪婪:默认,表示在满足正则的情况尽可能多的取内容
  • 非贪婪:表示在满足正则的情况下,尽可能少的取内容
  • 贪婪的转变为非贪婪: 在 * ? + {} 的后面再加上 ?就可以了

9.13.【记忆】r的作用

  • r的作用: 让正则中的 \ 表示原生的含义,仅仅对 \起作用

9.14.【应用】案例:《简单爬虫-批量获取电影下载链接》

  • 思路:

9.15. 知识总结

举报

相关推荐

0 条评论