当前位置:网站首页>Chapter one module of the re module,
Chapter one module of the re module,
2022-08-10 15:36:00 【HUAWEI CLOUD】
文章目录
前言
前言
模块的相关概念
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的优先级查询
边栏推荐
- 程序调试介绍及其使用
- Network engineer's backpack (EDC summary recommendation)
- Go Context基本使用
- Data Types and Integer Storage
- Oracle数据库备份dmp文件太大,有什么办法可以在备份的时候拆分成多个dmp吗?
- 社区动态——恭喜海豚调度中国区用户组新晋 9 枚“社群管理员”
- SWIG tutorial "two"
- 640. Solving Equations: Simple Simulation Problems
- Containerization | Scheduled Backups in S3
- storage of data in memory
猜你喜欢

Rich Dad Poor Dad Reading Notes

容器化 | 在 S3 实现定时备份

Appium进行APP自动化测试

一个 ABAP Development Tool 自定义 service endpoint 的测试工具

MySQL 原理与优化:Update 优化

Based on Azuki Series: NFT Valuation Analysis Framework "DRIC"

WSL 提示音关闭

fatal error C1083 无法打开包括文件'io.h' No such file

FP6378AS5CTR SOT-23-5 高效1MHz2A同步降压调节器

A test tool for ABAP Development Tool custom service endpoint
随机推荐
容器化 | 在 S3 实现定时备份
12海里、24海里、200海里的意义及名称
无线网络、HTTP缓存、IPv6
Based on Azuki Series: NFT Valuation Analysis Framework "DRIC"
SYM32——RTC实时时钟程序讲解
“低代码”编程或将是软件开发的未来
【数仓设计】企业数仓为什么要进行分层?(六大好处)
640. Solving Equations: Simple Simulation Problems
老板加薪!看我做的WPF Loading!!!
Oracle database backup DMP file is too big, what method can be split into multiple DMP when backup?
从全球价值链视角看,京东云数智供应链对未来经济有何影响?
scala集合
pm2 static file service
Opencv 图像超像素分割(SLIC、SEEDS、LSC)
Containerization | Scheduled Backups in S3
Websocket realizes real-time change of chart content
Parse the value of uuid using ABAP regular expressions
【MindSpore易点通机器人-02】设计与技术选型
NFT digital collection development issue - digital collection platform
Understanding_Data_Types_in_Go