正则表达式re模块小结
re模块的常用方法
1、compile(pattern[,flags])
创建模式对象,一般配合其他方法使用。例如:
import re #导入re模块
text = 'All that doth flow we cannot liquid name' #测试用的字符串
pattern = re.compile(r'\bd\w+\b') #编译正则表达式对象,查找以d开头的单词
print(pattern.findall(text)) #使用正则表达式对象的findall()方法
结果是:
2、search(pattern,string[,flags]) && match(pattern,string[,flags])
search()方法是在整个字符串中寻找模式,返回匹配的对象或者None。用于在整个字符串或指定范围中进行搜索。
match()方法是从字符串的开始处匹配模式,返回匹配的对象或者None。用于在字符串开头或指定位置进行搜索,模式必须出现在字符串开头或指定位置。例如:
import re #导入re模块
text = 'All that doth flow we cannot liquid name' #测试用的字符串
pattern = re.compile(r'\b[a-zA-Z]{4}\b') #查找4个字母长的单词
print(pattern.match(text)) #从字符串开头开始匹配,失败返回空值
print(pattern.search(text)) #在整个字符串中搜索,成功
结果是:
3、findall(pattern,string[,flag])
列出字符串中模式的所有匹配项。用于在字符串中查找所有符合正则表达式的字符串并以列表形式返回。例如:
import re #导入re模块
text = 'All that doth flow we cannot liquid name' #测试用的字符串
pattern = re.compile(r'\b\w*a\w*\b') #查找所有含有字母a的单词
print(pattern.findall(text))
example = 'Or else would fire and water be the same;'
print(re.findall(r"\w+er",example)) #查找所有以字母组合ly结尾的单词
结果是:
4、split(pattern,string[,maxsplit=0])
根据模式匹配项分割字符串。例如:
import re #导入re模块
text = 'All..that...doth.flow...we.cannot...liquid name' #测试用的字符串
print(re.split('[\.]+',text)) #使用指定字符作为分隔符进行分割
print(re.split('[\.]+',text,maxsplit=3)) #最多分隔3次
print(re.split('[\.]+',text,maxsplit=2)) #最多分隔2次
print(re.split('[\.]+',text,maxsplit=1)) #最多分隔1次
结果是:
5、sub(pat,repl,string[,count=0])
将字符串中所有pat的匹配项用repl替换。例如:
import re #导入re模块
text = '''All that doth flow we cannot liquid name
Or else would fire and water be the same;
But that is liquid which is moist and wet
Fire that property can never get.
Then 'tis not cold that doth the fire put out
But 'tis the wet that makes it die, no doubt.''' #测试用的字符串
pattern = re.compile(r'\bt\w*\b',re.I) #匹配以t或T开头的单词
print(pattern.sub('%',text)) #将符合条件的单词替换为%
print()
print(pattern.sub('%',text,1)) #只替换1次
结果是:
注意:函数参值flags的值可以是re.I(表示忽略大小写);re.L(支持本地字符集的字符);re.M(多行匹配模式);re.S(使元字符“.”匹配任意字符);re.U(匹配Unicode字符);re.X(忽略模式中的空格,并可以使用#注释)的不同组合。
正则表达式re模块小结的更多相关文章
- Python常用模块小结
目录 Python常用模块小结 一.Python常用模块小结 1.1 time模块 1.2 datetime模块 1.3 random模块 1.4 os模块 1.5 sys模块 1.6 json模块 ...
- python正则表达式Re模块备忘录
title: python正则表达式Re模块备忘录 date: 2019/1/31 18:17:08 toc: true --- python正则表达式Re模块备忘录 备忘录 python中的数量词为 ...
- python 正则表达式re模块
#####################总结############## 优点: 灵活, 功能性强, 逻辑性强. 缺点: 上手难,旦上手, 会爱上这个东西 ...
- python基础之正则表达式 re模块
内容梗概: 1. 正则表达式 2. re模块的使⽤ 3. 一堆练习正则表达式是对字符串串操作的一种逻辑公式. 我们一般使用正则表达式对字符串进行匹配和过滤.使用正则的优缺点: 优点: 灵活,功能性强, ...
- python记录_day23 正则表达式 re模块
一. 正则表达式 使用python的re模块之前应该对正则表达式有一定的了解 正则表达式是对字符串操作的一种逻辑公式.我们一般使用正则表达式对字符串进行匹配和过滤. 正则的优缺点: 优点:灵活, 功能 ...
- Python面试题之Python正则表达式re模块
一.Python正则表达式re模块简介 正则表达式,是一门相对通用的语言.简单说就是:用一系列的规则语法,去匹配,查找,替换等操作字符串,以达到对应的目的:此套规则,就是所谓的正则表达式.各个语言都有 ...
- javascript之正则表达式基础知识小结
javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...
- 基于iCamera测试mt9m034 1280X960 高动态相机模块小结
基于iCamera测试mt9m034 高动态相机模块小结 首先看看此模块的特性 mt9m034 高动态 CMOS模块 1280*960像素 5.48 V/lux-sec >115db 摄像头模块 ...
- 基于iCamera测试500w摄像头-mt9p001,mt9p031,mt9p001模块小结
基于iCamera测试500w摄像头-mt9p001,mt9p031,mt9p001模块小结 先看实物 M12标准无畸变镜头效果 标准CS镜头效果 iCamera底板+mt9p001安装效果 再看看c ...
随机推荐
- css之盒子模型案例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示
Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示 今天项目中要实现一个天气的预览,加载的信息很多,字段也很多,所以理清了一下思路,准备独立出来写一个总结,这样对大家 ...
- PO订单审批通过API
DECLARE l_return_status VARCHAR2(1); l_exception_msg VARCHAR2(4000); BEGIN mo_global.set_policy_cont ...
- DBUtils学习总结
这几天闲着无聊,就看了一下DBUtils这个数据库组件.中间有了一些想法,现在记录下来. 文章主要分几部分 1 最简单同时也是最经常使用的一些范例 2 学习源码前的一些知识储备 3 我自己写的mydb ...
- DrawerLayout实现网易新闻抽屉效果
个人感觉网易的客户端比较前卫,有很多新鲜的东西,有时候模仿这些好的客户端能学到很多东西 开始今天的主要课题,下面是网易客户端抽屉模式实现的效果 其实有个Drawerlayout这个布局,你得问题就已经 ...
- 单向循环链表C语言实现
我们都知道,单向链表最后指向为NULL,也就是为空,那单向循环链表就是不指向为NULL了,指向头节点,所以下面这个程序运行结果就是,你将会看到遍历链表的时候就是一个死循环,因为它不指向为NULL,也是 ...
- LIRe 源代码分析 3:基本接口(ImageSearcher)
===================================================== LIRe源代码分析系列文章列表: LIRe 源代码分析 1:整体结构 LIRe 源代码分析 ...
- SpriteBuilder中频繁的切换场景层的解决办法
注意,不像SettingsLayer,CCScrollView实例并没有从场景中删除和重新加载像代码所示的那样. 你只是简单的改变其可视(visible)状态on和off. 改变可视状态比加载CCB或 ...
- Android Camera开发系列(上)——Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片
Android Camera开发系列(上)--Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片 最近也是在搞个破相机,兼容性那叫一个不忍直视啊,于是自己翻阅了一些基本的资料,自己实现了一 ...
- ROS探索总结(十四)——move_base(路径规划)
在上一篇的博客中,我们一起学习了ROS定位于导航的总体框架,这一篇我们主要研究其中最重要的move_base包. 在总体框架图中可以看到,move_base提供了ROS导航的配置.运行.交互接口,它主 ...