• re模块import re

    • 基础方法

      • findall:匹配所有 ,每一项都是列表中的一个元素,返回的是列表
      • search只匹配从左到右的第一个,得到的不是直接的结果,而是一个变量,通过这个变量的group方法来获取结果,如果没有匹配到,会返回None,使用group会报错.
      • match:从头开始匹配,相当于search中的正则表达式加上一个^
    • 字符串处理的扩展:
      • 切割:

        • split 返回列表,按照正则规则切割,默认匹配到的内容会被切掉.
  •  import re
    ret = re.split('\d+',"alex28jay39jojo24") #从哪里切就丢失什么
    print(ret) #结果为
    ['alex', 'jay', 'jojo', ''] import re
    ret = re.split('(\d+)',"alex28jay39jojo24") #小括号括起来正则式,返回的时候会加上被切的内容
    print(ret) #结果为
    ['alex', '', 'jay', '', 'jojo', '', '']
      • 替换:

        • sub/subn 按照正则规则去寻找要被替换掉的内容,这个subn和sub的区别就是subn会返回一个元组,第二个元素是替换的次数
    • re模块的进阶:
      • compile:节省你使用正则表达式解决问题的时间(编译→正则表达式→编译成→字节码...在多次使用过程中,不会多次编译)compile得出的结果可以做search match findall finditer
      • finditer:节省你使用正则表达式解决问题的空间/内存,返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值.
  • 在Python中使用正则表达式的特点和问题
  • 使用正则表达式的技巧
 s = '<a>wahaha</a>'
ret = re.search('>(\w+)<',s) #在字符串中匹配到后,会返回小括号中的内容
print(ret.group(1)) #括号的序列从1开始,不填就会返回匹配到的所有内容 #结果为
wahaha #如果group()的括号为空的话
#打印结果为
>wahaha<

  

  • 爬虫的例子

Python_Mix*re模块基础方法,进阶,正则表达式的使用的更多相关文章

  1. 5.2.2 re模块方法与正则表达式对象

    Python标准库re提供了正则表达式操作所需要的功能,既可以直接使用re模块中的方法,来实现,也可以把模式编译成正则表达式对象再使用. 方法 功能说明 complie(pattern[,flagss ...

  2. js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)

    js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ...

  3. js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)\d/)

    js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)\d/) 一.总结 1.RegExp对象有三个方 ...

  4. js进阶正则表达式11RegExp的属性和方法(RegExp的属性和方法,就是RegExp对象.(点)什么的形式)(正则表达式执行之前会被编译)

    js进阶正则表达式11RegExp的属性和方法(RegExp的属性和方法,就是RegExp对象.(点)什么的形式)(正则表达式执行之前会被编译) 一.总结 1. RegExp的属性和方法,就是RegE ...

  5. python基础-7模块,第三方模块安装方法,使用方法。sys.path os sys time datetime hashlib pickle json requests xml

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  6. 【Python基础】之不同的文件在不同目录下导入指定模块的方法

    如下图三个文件的目录路径 – project     |–  1     |    |–  2     |    |    |–  3    |    |    |    |– owen.py     ...

  7. python 模块基础介绍

    从逻辑上组织代码,将一些有联系,完成特定功能相关的代码组织在一起,这些自我包含并且有组织的代码片段就是模块,将其他模块中属性附加到你的模块的操作叫做导入. 那些一个或多个.py文件组成的代码集合就称为 ...

  8. python基础——面向对象进阶下

    python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...

  9. python基础——面向对象进阶

    python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...

随机推荐

  1. Django回顾

    Django简介 Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义we ...

  2. Git设置文件或目录忽略跟踪的三种方式

    1. 共享的忽略设置方式 本地仓库根目录,创建.gitignore文件,并编辑正则匹配需要忽略的文件或目录. .gitignore文件需要上传到仓库,同时会影响到他人,共享忽略设置 注意: .giti ...

  3. Java包装类介绍与类型之间相互转换

    1.包装类存在的意义 通俗解释就是由于Java是面对对象的语言,而基本类型不具有面对对象的概念,为了弥补不足,引入了包装类方便使用面对对象的变成思想操作基本类型. 2.基本类型和包装类对应关系 byt ...

  4. python - Random常用方法记录

    import random # range [a,b) 不包含b # 获取随机整数 # randrange [a,b) 不包含b a = random.randrange(0, 101, 5) # E ...

  5. Vue小项目二手书商城:(三)前端渲染数据

    实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop ...

  6. docker笔记(2)-----容器连接

    2019-01-12  13:57:36 Dockerfile基本结构: 基础镜像内容:FROM指明base image 维护者信息: 镜像操作指令:RUN指令,每运行一条RUN指令,镜像添加新的一层 ...

  7. 2>&1的意思

    2>&1的意思就是将标准错误也输出到标准输出当中.

  8. Selenium Chrome

    Chrome版本不变 发现在 Selenium-server-standalone-2.39.0.jar 中可全屏 Selenium-server-standalone-3.8.1.jar 中不可全屏 ...

  9. [python]目录及文件操作

    Python OS模块和shutil模块 获取路径 # 获取当前路径 pwd = os.getcwd() # 获取上级路径 a_pwd = os.path.abspath(os.path.dirnam ...

  10. [python]Python代码安全分析工具(Bandit)

    简介: Bandit是一款Python源码分析框架,可用于Python代码的安全性分析.Bandit使用标准库中的ast模块,将Python源码解析成Python语法节点构成的树.Bandit允许用户 ...