学习前准备:导入re模块

  1. import re

一、re的核心函数

  1. 1 - re.compile(pattern[, flags])
  2. 编译正则表达式,速度快
  3. 2 - re.match(pattern, string, flags=0)
  4. 只从字符串最开始进行匹配,只返回一个结果
  5. 3 - re.search(pattern, string, flags=0)
  6. 从字符串任意位置开始匹配,返回第一次找到的内容
  7. 4 - re.findall(pattern, string, flags=0)
  8. 查找所有匹配到的,并返回一个列表
  9. 5 - re.finditer(pattern, string, flags=0)
  10. 查找所有匹配到的,返回一个可迭代的对象
  11. 6 - re.sub(pattern, repl, string, count=0, flags=0)
  12. 替换匹配到的内容
  13. 7 - re.split(pattern, string[, maxsplit=0, flags=0])
  14. 按照能够匹配的子串将字符串分割后返回列表
  15.  
  16. 其中:match()、search()、finditer()返回的内容是一个对象,数据需要提取

二、常用的匹配对象的方法

  1. 1 - group()
  2. 返回整个匹配的对象,或者特殊编号的子组---->group()、group(1)、group(2)
  3. 2 - groups()
  4. 将所有匹配到的子组以元组的方式返回
  5. 3 - start()
  6. 返回匹配开始的位置
  7. 4 - end()
  8. 返回匹配结束的位置
  9. 5 - span()
  10. 返回匹配到的开始位置和结束位置,以元组方式返回

三、正则模式

  1. ^ 匹配字符串的开头
  2. $ 匹配字符串的末尾
  3. . 除了换行符之外的任意字符
  4. | A | B,表示匹配正则表达式 A 或者 B
  5. \ 转义
  6. [] 匹配包含的任意一个字符,^如果出现在首位则表示取反
  7. {n} 前面的字符连续出现n
  8. {m,n} 前面的字符连续出现最少m次,最多m
  9. {m,} 连续出现最少m
  10. {,n} 等价于{0,n}
  11. * 前面的字符连续出现0次或无数次
  12. + 前面的字符连续出现1次或无数次
  13. ? 前面的字符出现0次或1
  14. () 分组:1、后向引用\数字,2group()获取
  15. (?P<name>正则表达式) 有名分组:1、后向引用(?P=name),2group()来获取

四、正则表达式修饰符,可选标志

  1. re.I 使匹配对大小写不敏感
  2. re.L 做本地化识别(locale-aware)匹配
  3. re.M 多行匹配,影响 ^ $
  4. re.S 使 . 匹配包括换行在内的所有字符
  5. re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B
  6. re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解

五、在正则前加“r”表示:不要转义,要用原生字符串

Python3正则表达式学习笔记的更多相关文章

  1. python3 正则表达式学习笔记

    re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. ~匹配成功re.match方法返回一个匹配的对象,否则返回No ...

  2. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  3. python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容

    python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...

  4. python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍

    python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍 IDLE默认不能显示行号,使用ALT+G 跳到对应行号,在右下角有显示光标所在行.列.pycharm免费社区版.Su ...

  5. python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容

    python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...

  6. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  7. JavaScript正则表达式学习笔记(二) - 打怪升级

    本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...

  8. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...

  9. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

随机推荐

  1. ElasticSearch入门检索

    前面简介说到 elsatic是通过RestFul API接口操作数据的,可以通过postman模拟接口请求测试一下 一._cat 1.GET /_cat/nodes:查看所有节点 2.GET /_ca ...

  2. JVM 内存分配、调优案例

    内存分配 对象优先在Eden区分配 大多数情况下,对象在新生代Eden区中分配.当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC. HotSpot虚拟机提供了-XX:+PrintG ...

  3. Burp - Turbo Intruder

    Turbo Intruder 基础使用总结,把Python代码都记录下,要是有啥骚姿势,求各位师傅交流. 个人感觉超强的一款Burp插件,反正超快 Link: https://github.com/P ...

  4. .NET Core/.NET5/.NET6 开源项目汇总13:模板引擎

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  5. eslint+prettier+husky+lint-staged 统一前端代码规范

    eslint+prettier+husky+lint-staged 统一前端代码规范 遵循编码规范和使用语法检测,可以很好的提高代码的可读性,可维护性,并有效的减少一些编码错误. 1.终极目标 团队中 ...

  6. Ubuntu Server安装telnet服务时"Unable to locate package telnetd"解决方法

    装好Ubuntu Server 12.04后,用apt-get安装telnetd报"E: Unable to locate package telnetd",解决方法如下: 虚拟机 ...

  7. Socket通信-客户端

    WSADATA wsd; SOCKET sHost; SOCKADDR_IN servAddr; if (WSAStartup(MAKEWORD(2, 2), &wsd) != 0) retu ...

  8. SQL 练习29

    查询课程名称为「数学」,且分数低于 60 的学生姓名和分数 SELECT Student.Sname,Course.Cname,SC.score FROM Student,Course,SC WHER ...

  9. Blazor+Dapr+K8s微服务之状态管理

    1         状态管理服务器端接口 1.1         添加Dapr.AspNetCore包 在DaprTest1.Server项目中添加Dapr.AspNetCore包,该包实现了ASP. ...

  10. 【springboot】给你一份Spring Boot知识清单

    目录: 一.抛砖引玉:探索Spring IoC容器 1.1.Spring IoC容器 1.2.Spring容器扩展机制 二.夯实基础:JavaConfig与常见Annotation 2.1.JavaC ...