python内置模块re_常用内置模块(11):正则表达式、re模块
一、正则表达式
. 任何单个字符
[] 字符集。比如[abc]表示a、b、c
[^ ] 非字符集。比如[^abc]表示不是a或b或c的字符
\d 数字。等价于[0-9]
\w 单词字符。等价于[A-Za-z0-9_]
二、re库
2.1 常用函数
#查找
re.findall(pattern, string, flags=0) #搜索所有匹配结果,返回列表的形式。找不到,则返回空列表。
re.search(pattern, string, flags=0) #搜索第一个匹配的结果。返回的是Match对象。
re.match(pattern, string, flags=0) #类似于字符串中的startwith方法。搜索开头是不是匹配。返回的是Match对象。
re.finditer(pattern, string, flags=0) #搜索所有匹配的结果。返回一个迭代器,遍历迭代器可以得到一个个Match对象。
#替换
re.sub(pattern, repl, string, count=0, flags=0)#类似于字符串中的replace方法。替换。在string中匹配pattern,然后替换成repl。
#切分
re.split(pattern, string, maxsplit=0, flags=0)#类似于字符串中的split方法,都是将一个字符串拆分成子字符串的列表。
2.1.1 re.findall()
re.findall(pattern, string, flags=0) #搜索所有匹配结果,返回列表的形式【例1】。找不到,则返回空列表。【例2】
参数flags如下:
常用的就是re.I,可以忽略大小写。【例3】
【例1】
结果:
【例2】
结果:
【例3】
结果:
2.1.2 re.search()
re.search(pattern, string, flags=0) #搜索第一个匹配的结果。返回的是Match对象【例1】。如果匹配不到,则返回None.【例2】
Match对象是一次匹配的结果,包含匹配的很多信息:
【例1】
结果:
【例2】
结果:
2.1.3 re.match()
re.match(pattern, string, flags=0) #类似于字符串中的startwith方法。搜索开头是不是匹配。返回的是Match对象。【例1】
例1:
结果:
2.1.4 re.finditer()
re.finditer(pattern, string, flags=0) #搜索所有匹配的结果。返回一个迭代器,遍历迭代器可以得到一个个Match对象。【例1】
例1:
结果:
2.1.5 re.sub()
re.sub(pattern, repl, string, count=0, flags=0) #类似于字符串中的replace方法,返回替换后的字符串。【例1】
pattern:要替换的串
repl: 替换成的串
string: 待匹配的字符串
count: 匹配的最大替换次数。【例2】
例1:
结果:
例2:
结果:
2.1.6 re.split()
re.split(pattern, string, maxsplit=0, flags=0)#类似于字符串中的split方法,都是将一个字符串拆分成子字符串的列表。【例1】【例2】
maxsplit: 最大分割数,剩余部分作为最后一个元素输出。
例1:
结果:
例2:
结果:
!和空格中间有一个空字符。
例3:
结果:
2.2 re库的另一种用法
2.1中是直接使用函数。但是还有一种方法更常用,就是首先使用re.compile()函数,将正则表达式的字符串形式编译成正则表达式对象,然后再使用这个对象的函数。
这样的话,就可以一次编译,多次操作。更好一点。
步骤一:regex = re.compile(pattern, flags=0)
步骤二:调用regex的方法,有:
例:
结果:
2.3 贪婪匹配
如果同时匹配到长度不同的多项,返回哪一个呢?
Re库默认采用贪婪匹配,即输出匹配最长的子串。【例1】【例3】
如何输出最短的子串呢?【例2】【例3】
• 只要长度输出可能不同的,都可以通过在操作符后增加?变成最小匹配
例1:
结果:
例2:
结果:
例3:
结果:
2.4 分组
分组就是用一对圆括号“()”括起来的正则表达式,匹配出的内容就表示一个分组。从正则表达式的左边开始看,看到的第一个左括号“(”表示第一个分组,第二个表示第二个分组,依次类推,需要注意的是,有一个隐含的全局分组(就是0),就是整个正则表达式。
注意:group(0)是整个匹配的结果,也就是不分组时的结果。
group(1)才是第一组的结果。
groups()是所有组的结果,放到了一个元组中。
例如:如果想把区号从匹配的电话号码中分离,可以添加括号在正则表达式中创建分组,再使用group()方法,从一个分组中获取匹配的文本。
结果:
python内置模块re_常用内置模块(11):正则表达式、re模块相关推荐
- python常用内置模块-Python基础-22常用内置模块
22. 常用内置模块 22.1 random模块 随机数据可以用于数学.测试.安全.算法等领域中.内置random模块,可用于生成伪随机数. 真正意义上的随机数或随机事件是在某次产生过程中是按照实验过 ...
- python内置模块_python_常用内置模块
一.time模块(时间模块): 表示时间的三种方法: 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) : ...
- python常用内置模块-python 常用内置模块使用
python模块分类:1,标准库2,开源模块3,自定义模块 python 常用内置模块使用 1,time与datetime获取时间戳: time.time() 时间元组: time.localtime ...
- python常用内置模块-Python常用内置模块之xml模块
xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...
- python常用内置模块-Python常用内置模块之xml模块(详解)
xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...
- Python(十三)- 常用内置模块与第三方库
python具有庞大的用户群,因其语法简洁,开发效率高而备受欢迎,同样,它的标准库与第三方库的支持也比较完善. 这里做些简单的整理. 常用内置模块与第三方库 一般存放于Python安装目录下的 lib ...
- python正则表达式模块_Python常用模块——正则表达式re模块
Python常用模块--正则表达式re模块 引子 请从以下文件里取出所有的手机号 姓名 地区 身高 体重 电话 况咏蜜 北京 171 48 13651054608 王心颜 上海 169 46 1381 ...
- Python17个常用内置模块总结 (运维)
<--目录--> 1.getpass 2.os 3.sys 4.subprocess 5.hashlib 6.json 7.pickle 8.shutil 9.time 10.dateti ...
- 【Nodejs】学习之常用内置模块
文章目录 内置http模块 监听主机和端口号 response对象 返回响应结果 返回状态码 响应头文件 request对象 URL的处理 http发送网络请求 内置url模块 获取query参数 使 ...
最新文章
- 怎么用迅雷下载python_我是如何使用python控制迅雷自动下载电影的?
- 基克的聚合 机器人_新版本辅助装大改 基克的聚合不能错过
- 使用小型变压器的线圈设计实验磁标初步实验
- bzoj5368 [Pkusc2018]真实排名
- OpenCV-裁剪图片
- OpenCV中findContours函数的使用
- 使用vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
- python人脸关键点识别_用Face++实现人脸关键点检测
- 华为云薛浩:媒体业务进入全面云化时代,云原生成为必然选择
- 源代码 oa办公系统jsp_【程序源代码】经典的办公系统开发框架
- Go编程笔记(28)
- Pandas速查手册中文版API
- springboot 返回二进制文件流
- 以核心素养为导向的计算机教学方式,“雨花学术论坛”再开讲:让核心素养在课堂“落地生根”...
- 带你了解什么是MySQL数据库(八)数据库锁机制
- 一个arm64国产化工控机工程的移植总结
- 【NOI2011】阿狸的打字机
- 什么是GPT,如何克隆GPT类型的磁盘?
- 王力宏 谭维维-缘分一道桥 【超品质MP3】
- mac电脑安装python_-mac电脑怎么安装python