re正则模块

2024-08-24 12:52
文章标签 模块 正则 re

本文主要是介绍re正则模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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")

这篇关于re正则模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102533

相关文章

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx

python urllib模块使用操作方法

《pythonurllib模块使用操作方法》Python提供了多个库用于处理URL,常用的有urllib、requests和urlparse(Python3中为urllib.parse),下面是这些... 目录URL 处理库urllib 模块requests 库urlparse 和 urljoin编码和解码

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提