当前位置: 首页 > news >正文

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


http://www.mrgr.cn/news/7164.html

相关文章:

  • 微服务:微服务保护
  • 大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
  • MilkV Duo256M ARM核 HWTIMER驱动调试记录
  • 前端视角解决chrome/firefox浏览器访问国家税务局发票查验平台验证码获取提示”网络异常,请稍后再试“解决方法
  • Spring-1-注解管理依赖
  • 中间件安全
  • Docker的私有仓库部署——Harbor
  • 如何轻松有效地将 Windows 10 电脑迁移到 SSD
  • 【Electron】桌面应用开发electron-builder打包报错问题处理
  • 在 FPGA 上实现以太网的“低级”指南
  • WRF-LES与PALM微尺度气象大涡模拟实践技术应用
  • 设计模式六大原则之一的接口隔离原则
  • 前端面试——什么是原型和原型链
  • EasyExcel 导入计算公式导出展示字符串问题(SUM)
  • vue3 多文件下载zip压缩包
  • 基于AT32F421的开源电调项目测试
  • 获取当前时间戳
  • Nginx配置负载均衡
  • 如何使用 Java 中的 API 更改 PDF 纸张大小
  • 『基础』线性代数-1行列式