re正则模块

ops/2024/9/23 7:26:57/

re模块用于处理正则表达式,它的基本功能包括:匹配、查找、替换。

匹配

匹配的使用方法一般有三个参数:第一个参数:正则模式、第二个参数:需要处理的字符、

第三个参数:附加处理方法

下面列举的是一写匹配中使用到的一些方法

re.match()

result = re.match(r"asd", "asdasdasdq")
print(result, dir(result))
#re.match() 尝试从字符串的开头匹配正则表达式。如果正则表达式匹配成功,则返回一个 Match 对象;否则返回 None。
#在这个例子中,r"asd" 是要匹配的模式,"asdasdasdq" 是待匹配的字符串。由于 "asd" 在字符串开头匹配成功,所以 result 是一个 Match 对象。

re.findall()

result = re.findall(r"asd", "asdasdasdf")
print(result)
#re.findall() 返回一个列表,包含字符串中所有匹配正则表达式的子串
#在这个例子中,r"asd" 是要匹配的模式,"asdasdasdf" 是待匹配的字符串。findall 会找到所有 "asd" 的出现位置并返回 ['asd', 'asd', 'asd']。

re.finditer()

result = re.finditer(r"asd", "asdasdaf")
print(result, type(result))
for data in result:print(data, type(data))
#re.finditer() 返回一个迭代器,生成所有匹配正则表达式的 Match 对象。
#在这个例子中,r"asd" 是要匹配的模式,"asdasdaf" 是待匹配的字符串。finditer 会返回匹配的迭代器,包含所有 "asd" 的 Match 对象。每个 Match 对象表示一次匹配的结果。

re.search()

result = re.search(r"asd", "asdasdasf")
print(result)
#re.search() 查找字符串中第一个匹配正则表达式的位置,返回第一个匹配的 Match 对象,如果没有匹配则返回 None。
#在这个例子中,r"asd" 是要匹配的模式,"asdasdasf" 是待匹配的字符串。由于 "asd" 存在于字符串中,result 是一个 Match 对象,表示第一次匹配的结果。

替换

替换的一般使用方法有五个参数:第一个参数:正则模式、第二个参数:替换的成了什么

第三个参数:需要替换的字符串、第四个参数:替换的次数、第五个参数:附加标识

re.sub()

result = re.sub(r"asd", "fgh", "asdasdasdf")
print(result, type(result))
#re.sub() 替换字符串中所有匹配正则表达式的部分。
#在这个例子中,r"asd" 是要匹配的模式,"fgh" 是替换的字符串,"asdasdasdf" 是待处理的字符串。所有 "asd" 会被 "fgh" 替换,结果是 "fghfghdf",且 result 的类型是字符串 (str)。

切割

切割一般有三个参数:第一个参数:正则模式、第二个参数:需要切割的字符串、

第三个参数:最大的切割次数

 re.split()

result = re.split(r"asd", "asdasdf")
print(result)
#re.split() 使用正则表达式将字符串分割成多个部分,返回一个列表。
#在这个例子中,r"asd" 是要匹配的模式,"asdasdf" 是待分割的字符串。字符串 "asdasdf" 被 asd 分割成 ['', 'df']。前面的空字符串表示 "asd" 在开头的部分。

特殊字符

下面匹配是可以使用到的一些特殊字符

# \w 数字 字母 下划线
# \W 非数字 非字母 非下划线
# \d 数字
# \D 非数字
# \s 空白
# \S 非空白
# . 任意字符 除了\n 除非使用re.S 匹配所有
# ^ 开头   re.M 可以匹配\n
# $ 结尾   re.M 可以匹配\n
# 
# 贪婪:一次尽可能多的匹配
# * 代表有>= 0 个
# + 代表有>= 1 个
# ? 代表有1个或者多个
# 非贪婪:尽可能少的匹配
# 在贪婪模式后边追加?

下面是简单举例

result = re.findall(r"\w","asdasda,./- =445 ")
result = re.findall(r"\W", "asd,/.;'!#$%^&*233")
result = re.findall(r"\d","asd,/.;'!#$%^&*233")
result = re.findall(r"\D","asd,/.;'!#$%^&*233")
result = re.findall(r"\s","asd ,/.;'! #$% ^ &*233 ")
result = re.findall(r"\S","asd ,/.;'! #$% ^ &*233 ")
result = re.findall(r".asd","asdfdsdasasd")
result = re.findall(r"^asd","asdfdsdasasd")
result = re.findall(r"asd$","asdfdsdasasd")
result = re.findall(r"\w*","asdfds,./ d")
result = re.findall(r"\w+","asdfds,./ d")
result = re.findall(r"\w?","asdfds,./ d")result = re.findall(r"\w*?","asdfds,./ d")
result = re.findall(r"\w+?","asdfds,./ d")
result = re.findall(r"\w??","asdfds,./ d")result = re.findall("a{1}","abbb")result = re.findall("[asd]","asdasdasdfawdas")
result = re.findall("(asd)","asdasdasdfawdas")
result = re.findall("a|d","asdasdasdfawdas")
result = re.findall("(.*)","asdasdasdfawdas")
result = re.search("a(.*)v(.*)w","asdasdvfewf")


http://www.ppmy.cn/ops/98810.html

相关文章

Notion使用详解

文章目录 Notion使用详解一、引言二、Notion的核心特性1、模块化设计——Block Editor2、强大的数据库功能——Database3、丰富的模板和导入功能 三、Notion的高级使用技巧1、页面和子页面的创建与管理2、内容的动态交互和展示3、跨平台同步与分享 四、总结 Notion使用详解 一…

iOS 开发:Object-C 和 Swift 的区别 (AI问答)

一:语言类型的区别(最主要区别) object-c 是动态类型语言; swift是静态类型语言; 看一下AI的回答,很全面~~ Objective-C 和 Swift 的语言类型区别主要体现在以下几个方面: 1. 静态类型 vs. 动…

ASIACRYPT 2020

分类文章编号最佳论文1-3加密方案4-9后量子密码10-12消息鉴权编码13-15密码分析16-22对称密钥密码23-25侧信道分析26-29公钥密码30-37格密码38-42量子算法43-46多方计算47-58同形映射密码59-64鉴权密钥交换65-68区块链和消息轨迹69-70可更新加密71-74零知识75-80属性加密81-85B…

【Java 数据结构】排序

排序 排序排序是什么排序相关概念稳定性比较排序非比较排序内部排序外部排序 常见比较排序冒泡排序基本思想代码实现 选择排序基本思想代码实现 插入排序基本思想代码实现 希尔排序基本思想代码实现 堆排序基本思想代码实现 快速排序基本思想代码实现优化其他实现寻找基准非递归…

40_操作系统安全机制、linux安全加固、windows安全加固、Linux基线扫描下载、主机安全检查工具windows版本下载

1.操作系统安全机制 1.1标识与鉴别 Windows:SIDLinux: UID、GID 1.1.1 SID 查看当前用户名及SID 查看所有用户名及SID C:\Users\TEACHER>wmic useraccount get name,sid Name SID Administrator S-1-5-21-80530027-1782036084-1563535153-500 Defa…

【多线程基础】Java线程的六种状态

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:Java多线程 📚本系列文章为个人…

框架——MyBatis查询(单表查询,多表联查)

目录 1.单表查询 2.多表查询 想查询student并且查询student所选择的专业major ①通过id查一个 ②不传入值直接查所有的学生列表 ③嵌套查询 想查询专业major并且查询该专业被哪些学生student选择 ①通过id查一个 ②不传入值直接查所有的专业列表 ③嵌套查询 3. 设置自动…

R 语言学习教程,从入门到精通,R Excel 文件使用(18)

1、R Excel 文件 Excel 格式的文件主要是 xls 或 xlsx,这两种文件可以在 R 语言中导入 xlsx 库来实现直接的读取。 R 语言读写 Excel 文件需要安装扩展包,我们可以在 R 到控制台输入以下命令来安装: install.packages("xlsx", re…