当前位置:网站首页>第壹章模块大全之《re模块》
第壹章模块大全之《re模块》
2022-08-10 14:59:00 【华为云】
文章目录
前言
前言
模块的相关概念
1. 什么是模块
模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块。模块的英文名叫: modules,一个模块中可以包含N个函数,也可以包含类等等。在Python中一个扩展名为.py的文件就是一个模块。
2. 使用模块的好处
如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。
随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用
- 方便其他程序和脚本的导入并使用
- 避免函数名和变量的冲突
- 提高代码的可维护性
- 提高代码的可重用性
模块的使用
1. 自定义模块
创建一个.py文件,名称尽量不要与Python自带的标准模块名称相同,需要见名知意。
一、re模块下的基本使用方法
要使用re模块前必须要熟悉掌握正则表达式的使用规则,如果不会的话可以看如下博客
---->>
1、findall方法
在字符串中找到正则表达式所匹配的所有满足的结果,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
语法:
re.findall(pattern, string, flags=0)
或
pattern.findall(string[, pos[, endpos]])参数:
- pattern 匹配模式。
- string 待匹配的字符串。
- pos 可选参数,指定字符串的起始位置,默认为 0。
- endpos 可选参数,指定字符串的结束位置,默认为字符串的长度。
栗子:
2、search方法
re.search 扫描整个字符串并返回第一个成功的匹配就结束。findall是返回所有成功匹配的,search只返回第一个成功匹配的。
函数语法:
re.search(pattern, string, flags=0)函数参数说明:
参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串。 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见: 匹配成功re.search方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
栗子:
3、match方法
re.match 必须从字符串的第一个位置开始就能够往下匹配到,匹配上的内容必须调用group才能显示,如果不是起始位置匹配成功的话,match()就返回none,调用group会报错
函数语法:
re.match(pattern, string, flags=0)函数参数说明:
参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串。 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。 匹配成功re.match方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
栗子:
4、spilt方法
split 方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:
re.split(pattern, string[, maxsplit=0, flags=0])参数:
参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串。 maxsplit 分割次数,maxsplit=1 分割一次,默认为 0,不限制次数。 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
栗子:
5、sub方法
可以使用sub()方法来进行查询和替换,sub方法的格式为:
格式
sub(replacement, string[, count=0])参数
- replacement 是被替换成的文本
- string 是需要被替换的文本
- count 是一个可选参数,指最大被替换的次数
6、subn方法
subn方法与sub方法类似,只不过subn会将替换的次数和替换后的结果通过元组的形式返回给你。
栗子:
7、compile方法
compile 函数
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
语法格式为:
re.compile(pattern[, flags])参数:
- pattern : 一个字符串形式的正则表达式
- flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
- re.I 忽略大小写
- re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
- re.M 多行模式
- re.S 即为' . '并且包括换行符在内的任意字符(' . '不包括换行符)
- re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
- re.X 为了增加可读性,忽略空格和' # '后面的注释
compile方法的使用场景:
当一条正则规则需要反反复复的使用且比较长
8、finditer方法
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
re.finditer(pattern, string, flags=0)参数:
栗子:
参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串。 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等 栗子
9、注意事项
1、findall的优先级查询
2、 split的优先级查询
边栏推荐
- 易观分析联合中小银行联盟发布海南数字经济指数,敬请期待!
- fatal error C1083 无法打开包括文件'io.h' No such file
- Appium for APP automation testing
- Parallels 将扩展桌面平台产品,以进一步改善在 Mac 上运行 Windows 的用户体验和工作效率
- 基于 Azuki 系列:NFT估值分析框架“DRIC”
- scala 基础篇
- 自定义picker滚动选择器样式
- Flask框架——MongoEngine使用MongoDB数据库
- 1004 (tree array + offline operation + discretization)
- "NIO Cup" 2022 Nioke Summer Multi-School Training Camp 7
猜你喜欢

NFT digital collection development issue - digital collection platform

Azure IoT 合作伙伴技术赋能工作坊:IoT Dev Hack

fatal error C1083 Unable to open include file 'io.h' No such file

Azure IoT Partner Technology Empowerment Workshop: IoT Dev Hack

E. Cross Swapping(并查集变形/好题)

富爸爸穷爸爸之读书笔记

Flask框架——MongoEngine使用MongoDB数据库

Appium for APP automation testing

数学建模学习视频及资料集(2022.08.10)

Oracle数据库备份dmp文件太大,有什么办法可以在备份的时候拆分成多个dmp吗?
随机推荐
fastposter v2.9.1 programmer must-have poster generator
scala basics
scala 10种函数高级应用
pm2之静态文件服务
蓝帽杯半决赛火炬木wp
基于inotify实现落盘文件的跨进程实时读写交互
王学岗—————————哔哩哔哩直播-手写哔哩哔哩硬编码录屏推流(硬编)(26节课)
Common conventions such as common SQL and API interfaces
Websocket realizes real-time change of chart content
Custom picker scroll selector style
强意识 压责任 安全培训筑牢生产屏障
社区动态——恭喜海豚调度中国区用户组新晋 9 枚“社群管理员”
PyTorch multi-machine multi-card training: DDP combat and skills
websocket实现实时变化图表内容
Programmer = overtime??- Master the time to master the life
SWIG tutorial "two"
Azure IoT Partner Technology Empowerment Workshop: IoT Dev Hack
Redis -- Nosql
JS 从零手写实现一个bind方法
scala集合