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: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

C8T6超绝模块--EXTI

C8T6超绝模块–EXTI 大纲 控制流程结构体分析EXTI实现按键 具体案例 控制流程 这里是流程框图,具体可以去看我STM32专栏的EXTI的具体分析 结构体分析 typedef struct {uint32_t EXTI_Line; // 中断/事件线EXTIMode_TypeDef EXTI_Mode; // EXTI 模式EXTITrigger_TypeDef EXTI_

1、创建多模块的maven springboot项目

现在的java的项目都是多模块的,这次也跟个风。 目标:实现下述结构 项目AcedBoot, 子模块:         aced-api 对外提供接口,         aced-web 给前端提供接口,         aced-service 服务层,         aced-dao 数据底层,包含数据库mapper和实体类entity,         aced-commo

Vue2电商项目(二) Home模块的开发;(还需要补充js节流和防抖的回顾链接)

文章目录 一、Home模块拆分1. 三级联动组件TypeNav2. 其余组件 二、发送请求的准备工作1. axios的二次封装2. 统一管理接口API----跨域3. nprogress进度条 三、 vuex模块开发四、TypeNav三级联动组件开发1. 动态展示三级联动数据2. 三级联动 动态背景(1)、方式一:CSS样式(2)、方式二:JS 3. 控制二三级数据隐藏与显示--绑定styl

PrestaShop免费模块/插件/扩展/工具下载

PrestaShop免费模块/插件/扩展/工具下载 PrestaShop免费模块 适用于您的电子商务网站的PrestaShop模块 现有超过3,000个PrestaShop模块可帮助您自定义在线商店,增加流量,提高转化率并建立客户忠诚度。 使您的电子商务网站成功! 下载(超过142+之多的PrestaShop官网认证的免费模块) 标签PrestaShop免费, PrestaShop免费工

Unity协程搭配队列开发Tips弹窗模块

概述 在Unity游戏开发过程中,提示系统是提升用户体验的重要组成部分。一个设计良好的提示窗口不仅能及时传达信息给玩家,还应当做到不干扰游戏流程。本文将探讨如何使用Unity的协程(Coroutine)配合队列(Queue)数据结构来构建一个高效且可扩展的Tips弹窗模块。 技术模块介绍 1. Unity协程(Coroutines) 协程是Unity中的一种特殊函数类型,允许异步操作的实现