python学习——正则表达式

  • 什么是模块
    • 一组功能的集合,就是给我们提供功能的,这个要操作的内容本来就存在,模块只不过是python提供给我们去执行功能的方法
      • 谁把所有的硬件管理起来的?——操作系统
        • 文件在硬盘上存储着,从硬盘读文件必须经过操作系统
    • 模块的类型
      • 内置模块:不需要自己安装,python解释器自带的
      • 第三方模块:需要我们自己安装的模块
      • 自定义模块:我们自己写的模块
    • time模块:在python中操作时间,显示时间,计算时间
    • random模块:在python中操作随机数,在Python中生成随机数
  • 正则表达式
    • re模块是python语言中的正则表达式的方法
    • 正则能做什么
      • 1.从大段的文字中找到符合规则的内容
        • 应用:
          • 1.爬虫,从网页的字符串中获取你想要的数据
          • 2.日志分析
            • 什么是日志:2018-08-12 楼下早点摊消费 3.00
      • 2.判断某个字符串时候完全符合负责
        • 应用:表单验证:电话、qq号码、银行卡号等
    • 正则表达式只和字符串打交道
    • 正则表达式的规则
      • 世界上最好用的正则工具:http://tool.chinaz.com/regex/
      • 字符组:[]写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的
        • 填写的-两边只能按照ascii表的顺序左小右大
        • [0-9a-zA-Z_] 匹配0到9的数字、a到z的大小写字母、下划线
      • 转义符
        • \
      • 元字符
        • 与转移字母相关的
          • \w 匹配数字、字母、下划线;word关键字;[0-9a-zA-Z_]
          • \d 匹配数字;digit关键字;[0-9]
          • \s 匹配换行符\n、制表符\t、空格' ';space关键字;[\n\t ]
          • \W \D \S 和\w \d \s 取反
          • [\s\S] [\d\D] [\w\W]是三组全集,匹配所有字符串
          • \b 表示单词的边界,匹配单词的开始或结尾,\bstr、str\b
        • ^ $
          • ^ 开始符,匹配一个字符串的开始
          • $ 结束符,匹配一个字符串的结束
        • . 匹配除了换行符之外的任意字符(1个字符)
        • [] 字符组 ,[^] 非字符组
          • [] 只要出现在中括号内的内容都可以被匹配
          • [^] 只要不出现在中括号的内容都可以被匹配,^必须写在最前面
          • 有一些有特殊意义的元字符进入字符组中会恢复本 来意义:. | [] ()
        • | 或
          • a|b 符合a规则或b规则的都可以被匹配,如果a规则是b规则的一部分,且a规则比b规则要苛刻(更长),就把a规则写在前面;将更复杂的或更长的写在前面
        • ( ) 分组
          • 表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组
      • 量词(永远约束元字符)
        • {n} 表示这个量词之前的字符出现n次
        • {n,} 表示这个量词之前的字符至少出现n次
        • {n,m} 表示这个量词之前的字符出现n~m次
        • ? 表示匹配量词之前的字符串出现0次或1次,表示可有可无的时候
        • + 表示匹配量词之前的字符串出现1或多次
        • * 表示匹配量词之前的字符串出现0或多次
      • 特点
        • 贪婪匹配:它会在允许的范围内取最长的结果
        • 非贪婪模式/惰性匹配:在连词后面加个?,原理是先匹配一个\d然后以?后面的8为第二标准
        • .*?x 匹配任意非换行符字符任意长度,直到遇到x停止
      • 关于字符串挪到python中的转移问题:只需在工具中测试完毕,确认可以匹配上之后,挪到python中在字符串的外面加上r即可,即r' '
      • 组合使用方法
        • 普通字符就表示一个正常的字符
          • 元字符表示它特殊的意义,如果转义元字符,那么这个元字符就失去了意义
        • 几个字符的组合关系
          • 字符/元字符——只约束一个字符
          • 字符+量词——约束一个字符连续出现的次数
          • 字符+量词+?——约束一个字符连续出现的最少次数
            • 字符+量词+?+x——约束一个字符连续出现量词范围内的最少次数,遇到x就立即停止
  • 练习题
    • 匹配整数 \d+
    • 匹配小数 \d+\.\d+
    • 匹配小数或整数 \d+(\.\d+)?或\d+\.\d+|\d+
    • 匹配身份证号码:[1-9]\d{16}[\dx]|[1-9]\d{14}或[1-9]\d{14}(\d{2}dX])?
posted @ 2019-08-12 16:29  陪伴is最长情的告白  阅读(268)  评论(0)    收藏  举报