• Python_Mix*re模块基础方法,进阶,正则表达式的使用


    • re模块import re
      • 基础方法
        • findall:匹配所有 ,每一项都是列表中的一个元素,返回的是列表
        • search只匹配从左到右的第一个,得到的不是直接的结果,而是一个变量,通过这个变量的group方法来获取结果,如果没有匹配到,会返回None,使用group会报错.
        • match:从头开始匹配,相当于search中的正则表达式加上一个^
      • 字符串处理的扩展:
        • 切割:
          • split 返回列表,按照正则规则切割,默认匹配到的内容会被切掉.
    •  1 import re
       2 ret = re.split('d+',"alex28jay39jojo24") #从哪里切就丢失什么
       3 print(ret)
       4 
       5 #结果为
       6 ['alex', 'jay', 'jojo', '']
       7 
       8 import re
       9 ret = re.split('(d+)',"alex28jay39jojo24") #小括号括起来正则式,返回的时候会加上被切的内容
      10 print(ret)
      11 
      12 #结果为
      13 ['alex', '28', 'jay', '39', 'jojo', '24', '']
        • 替换:
          • sub/subn 按照正则规则去寻找要被替换掉的内容,这个subn和sub的区别就是subn会返回一个元组,第二个元素是替换的次数
      • re模块的进阶:
        • compile:节省你使用正则表达式解决问题的时间(编译→正则表达式→编译成→字节码...在多次使用过程中,不会多次编译)compile得出的结果可以做search match findall finditer
        • finditer:节省你使用正则表达式解决问题的空间/内存,返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值.
    • 在Python中使用正则表达式的特点和问题
    • 使用正则表达式的技巧
     1 s = '<a>wahaha</a>'
     2 ret = re.search('>(w+)<',s)  #在字符串中匹配到后,会返回小括号中的内容
     3 print(ret.group(1))     #括号的序列从1开始,不填就会返回匹配到的所有内容
     4 
     5 #结果为
     6 wahaha
     7 
     8 #如果group()的括号为空的话
     9 #打印结果为
    10 >wahaha<

      

    • 爬虫的例子
  • 相关阅读:
    阶段1 语言基础+高级_1-2 -面向对象和封装_2面向对象思想的举例
    阶段1 语言基础+高级_1-2 -面向对象和封装_1面向对象思想的概述
    2-3 【初识组件】顶部 TabBar
    2-2 工程源码文件结构
    Fragment状态保存
    【51单片机】六种亮灯方式
    Hadoop自学笔记(二)HDFS简单介绍
    lvs 负载均衡环境搭建
    [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十一章 属性
    说说nio----1
  • 原文地址:https://www.cnblogs.com/mixw/p/9493848.html
Copyright © 2020-2023  润新知