方法使用

1. compile(正则表达式) - 编译创建正则表达式对象
re_obj = re.compile(r'\d{3}')
re_obj.fullmatch('234') re.fullmatch(r'\d{3}', '345')
  • a.获取匹配结果:

    匹配对象.group() - 获取整个正则表达式匹配到的结果

    匹配对象.group(N) - 获取第N分组匹配到的结果

  • b.获取匹配结果在原字符串中的范围

    匹配对象.span()

  • c.获取原字符串

    匹配对象.string

print(result.group())   # 234hksj
print(result.group(1)) # 234
print(result.group(2)) # hksj print(result.span()) # (0, 7)
print(result.span(2)) # (3, 7) print(result.string) # 234hksj
2. fullmatch(正则表达式, 字符串) - 让正则表达式和整个字符串进行匹配;如果匹配成功返回匹配对象,匹配失败返回None
result = re.fullmatch(r'(\d{3})([a-z]{4})', '234hksj')
print(result)
3.match(正则表达式, 字符串) - 让字符串开头和正则表达式进行匹配; 返回值是匹配对象或者None
print(re.match(r'\d{3}', '789佳的说法0023-==='))
print(re.match(r'\d{3}abc', '345ABC就开始大锅饭', flags=re.I))
4.search(正则表达式, 字符串) - 在字符串中查找第一个满足正则表达式的子串;返回值是匹配对象或者None
print(re.search(r'\d{3}', '时代峰峻34890shh==23992课时费'))
5.findall(正则表达式,字符串) - 获取字符串中所有满足正则表达式的子串;返回值是列表,列表中的元素是字符串
print(re.findall(r'\d+', '安抚348净宽度34920skdsf45烧开后09823hsd3sd89'))
6.finditer(正则表达式,字符串) - 获取字符串中所有满足正则表达式的子串; 返回值是迭代器,迭代器中的元素是匹配对象
result = re.finditer(r'(\d+)([a-z]{2})', '安抚348净宽度34920skdsf45烧开后09823hsd3sd89')
print(list(result))
7.split(正则表达式,字符串) - 以正则表达式匹配到的子串作为切割点,对字符串进行切割; 返回值是列表,列表中的元素是字符串
result = re.split(r'\d+', '暗红色的83大黄金黄色的9罚款0233s闪电发货890')
print(result) # ['暗红色的', '大黄金黄色的', '罚款', 's闪电发货', '']
8.sub(正则表达式,字符串1,字符串2) - 将字符串2中满足正则表达式的子串全部替换成字符串1;返回值是替换后的字符串
result = re.sub(r'\d+', 'and', '暗红色的83大黄金黄色的9罚款0233s闪电发货890')
print(result)
9.参数flags

以上所有的函数都有一个参数flags, 可以加re.I表示匹配的时候忽略大小写;加re.S表示单行匹配(默认是多行匹配re.M)

多行和单行的主要区别: 多行匹配.不能和\n进行匹配;单行.可以和\n进行匹配

print(re.fullmatch(r'a.b', 'a\nb'))   # None
print(re.fullmatch(r'a.b', 'a\nb', flags=re.S)) print(re.search(r'a.+b', '世纪东方anmb\n是否b大括号'))
print(re.search(r'a.+b', '世纪东方anmb\n是否b大括号', re.S))

附上整理的表格

第一章 1.18 re模块的更多相关文章

  1. Python小游戏——外星人入侵(保姆级教程)第一章 05重构模块game_functions

    系列文章目录 第一章:武装飞船 05:重构:模块game_functions 一.重构 在大型项目中,经常需要在添加新代码前重构既有代码.重构旨在简化既有代码的结构,使其更容易扩展.在本节中,我们将创 ...

  2. 我的python中级班学习之路(全程笔记第一模块) (第一章)(第2部分:如何设置python中的字体颜色,猜年龄练习题解答,while else语句,pycharm的使用)

    第一章:  python 基础语法 第  2  部分: 一.猜年龄练习题解答 直接上代码 >>> age = 26 >>> count = 0 >>&g ...

  3. 18第一章 ASP.Net内建对象

    第一章        ASP.Net内建对象 第一章        ASP.Net内建对象 ASP.Net为保持用户的数据和信息,内建了许多对象,包括Application.Response.Requ ...

  4. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  5. 《css3实战》读书笔记 第一章 基于CSS需求而编写的HTML.

    笔记说明 <CSS3实战手册第3版(影印版)>可以消除Web设计工作的痛苦,并且带给你:HTML--重新入门.如果你是HTML新手,你会学到如何以CSS友好的方式进行基本页面构造.若你是H ...

  6. 村田噪声抑制基础教程-第一章 需要EMI静噪滤波器的原因

    1-1. 简介 EMI静噪滤波器 (EMIFIL®) 是为电子设备提供电磁噪声抑制的电子元件,配合屏蔽罩和其他保护装置一起使用.这种滤波器仅从通过连线传导的电流中提取并移除引起电磁噪声的元件.第1章说 ...

  7. Android群英传》读书笔记 (1) 第一章 Android体系与系统架构 + 第二章 Android开发工具新接触

    第一章 Android体系与系统架构 1.Dalvik 和 ARTDalvik好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.ART好比是一辆组装好了的自行车,装好就可以骑了. ...

  8. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  9. Python3-Cookbook总结 - 第一章:数据结构和算法

    第一章:数据结构和算法 Python 提供了大量的内置数据结构,包括列表,集合以及字典.大多数情况下使用这些数据结构是很简单的. 但是,我们也会经常碰到到诸如查询,排序和过滤等等这些普遍存在的问题. ...

随机推荐

  1. 浅谈python面向对象编程和面向过程编程的区别

    面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用的时候再一个个的依次调用即可. 优点:性能高 缺点:相较于面向对象而言,不易维护,不易复用,不易扩展 适合于小型的项目面向对象 ...

  2. Think in Java 笔记(chapter1-7)

    Content Chapter 1:对象导论 Chapter 2:一切都是对象 Chapter 3:操作符 Chapter 4:控制执行流程 Chapter 5:初始化与清理 Chapter 6:访问 ...

  3. PanDownload

    百度盘下载地址:下载速度很快(链接)

  4. R期望

    斐波那契数列--九九乘法表 # 1. 打印斐波那契数列 kl<-c(1,1) for (i in 1:8){ kl[i+2]<-kl[i]+kl[i+1] } kl # 10. 打印九九乘 ...

  5. core-js@3带来的惊喜

    core-js 这个名词肯定很多人没听过,今天也是在配置babelpolyfill方法发现的 起因 在使用useBuiltIns:usage按需加载polyfill时,npm run build,就出 ...

  6. 你必须知道的Dockerfile

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.关于Dockerfile 在Docker中创建镜像最常用的方式,就是使用D ...

  7. 线程池API总结

    1.Executor:线程池顶级接口,只有一个方法 2.ExecutorService:真正的线程池接口 1) void execute(Runnable command) :执行任务/命令,没有返回 ...

  8. Windows下使用virtualenv创建虚拟环境

    操作系统 : windowns10_x64Python版本:3.6.8virtualenv版本:16.7.7virtualenvwrapper版本:1.2.5 方式一:直接使用virtualenv 1 ...

  9. C语言结构选择语句

    总结一下常用的if else与switch,其中switch中的break知识点是笔试题经常考到的内容. if else与else if 在C语言中,经常使用if else选择语句,来实现很多对应的功 ...

  10. tensorflow-- Dataset创建数据集对象

    tf.data模块包含: experimental 模块 Dataset 类  FixedLengthRecordDataset 类 TFRecordDataset 类 TextLineDataset ...