当前位置:网站首页>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的优先级查询
边栏推荐
- 使用Uiautomator2进行APP自动化测试
- [Data warehouse design] Why should enterprise data warehouses be layered?(six benefits)
- Zijin Example
- scala basics
- Go Context基本使用
- TestLink Export Use Case Transformation Tool
- 老板加薪!看我做的WPF Loading!!!
- 容器化 | 在 S3 实现定时备份
- dedecms支持Word内容自动导入
- Mysql statement analysis, storage engine, index optimization, etc.
猜你喜欢
MySQL Principle and Optimization: Update Optimization
Azure IoT Partner Technology Empowerment Workshop: IoT Dev Hack
QOS功能介绍
JS 从零手写实现一个bind方法
Rich Dad Poor Dad Reading Notes
JS entry to proficient full version
Meaning and names of 12 nautical miles, 24 nautical miles and 200 nautical miles
NFT数字藏品——数字藏品发行平台开发
TCP为什么是三次握手和四次挥手?
Mysql语句分析、存储引擎、索引优化等详情
随机推荐
SWIG tutorial "four" - package of go language
systemui屏蔽通知栏
Network engineer's backpack (EDC summary recommendation)
网络初识(二)
一个 ABAP Development Tool 自定义 service endpoint 的测试工具
全志V853开发板移植基于 LVGL 的 2048 小游戏
FP6378AS5CTR SOT-23-5 高效1MHz2A同步降压调节器
QOS功能介绍
Lilac Garden
使用 ABAP 正则表达式解析 uuid 的值
5G NR MIB详解
Problem solving-->Online OJ (19)
SYM32——RTC实时时钟程序讲解
fatal error C1083 无法打开包括文件'io.h' No such file
自定义picker滚动选择器样式
产品说明丨如何使用MobPush快速创建应用
网络工程师的背包(EDC总结推荐)
Understanding_Data_Types_in_Go
一个 ABAP 工具,能打印系统里某个用户对 BSP 应用的浏览历史记录
Rich Dad Poor Dad Reading Notes