zoukankan      html  css  js  c++  java
  • 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<

      

    • 爬虫的例子
  • 相关阅读:
    MS SQL入门基础:sql 其它命令
    MS SQL入门基础:数据类型
    MS SQL入门基础:SQL数据库表的修改
    MS SQL入门基础:创建数据库表
    MS SQL入门基础:注释符、运算符与通配符
    MS SQL入门基础:删除数据库
    MS SQL入门基础:字符串函数
    MS SQL入门基础:SQL 流程控制命令
    MS SQL入门基础:关系数据库的范式
    MS SQL入门基础:创建索引
  • 原文地址:https://www.cnblogs.com/mixw/p/9493848.html
Copyright © 2011-2022 走看看