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

re模块入门教程

        re模块是Python中的正则表达式模块,用于处理字符串的匹配和替换操作。re模块提供了一组函数,可以用来进行正则表达式的匹配、查找、替换等操作

一、匹配

  • re.match(pattern, string, flags=0): 从字符串的开头开始匹配,如果成功匹配则返回一个匹配对象,否则返回None。
# 返回值是一个match对象
result = re.match(r"abc", "abcabcdabcde")
print(result) # 输出为:<re.Match object; span=(0, 3), match='abc'>
  •  re.search(pattern, string, flags=0): 在字符串中查找匹配,如果找到则返回一个匹配对象,否则返回None。
# 查找第一个出现的字符串,返回的时macth对象
result = re.search(r"abc", "abcabcdabcde")
print(result) # 输出为:<re.Match object; span=(0, 3), match='abc'>
  •  re.findall(pattern, string, flags=0): 在字符串中查找所有符合正则表达式的匹配,并返回一个列表。
# 查找所有出现的在字符串中的,返回值时列表
result = re.findall(r"abc", "abcabcdabcde")
print(result) # 输出为:['abc', 'abc', 'abc']
  •  re.finditer(pattern, string):返回一个迭代器,生成字符串中所有匹配模式的匹配对象。
# 返回一个迭代器,可以进行遍历,模式是macth
result = re.finditer(r"abc", "abcabcdabcde")
for data in result:print(data)# 输出为:<re.Match object; span=(0, 3), match='abc'><re.Match object; span=(3, 6), match='abc'><re.Match object; span=(7, 10), match='abc'>

 二、查找

  • re.sub(pattern, repl, string): 替换字符串中所有匹配模式的部分,返回替换后的字符串。 
# 替换字符串,返回值是替换过后的字符串
result = re.sub(r"abc", "小明在睡觉", "abcabcdabcde")
print(result) # 输出为:小明在睡觉小明在睡觉d小明在睡觉de
  •  re.subn(pattern, repl, string, count=0, flags=0):替换字符串中所有匹配模式的部分,返回替换后的字符串,和替换次数,可以设置替换次数。
# 替换字符串,返回值是替换过后的字符串
result = re.subn(r"abc", "小明在睡觉", "abcabcdabcde")
print(result) # 输出为:('小明在睡觉小明在睡觉d小明在睡觉de', 3)

三、切割

        re模块中的re.split(pattern, string, maxsplit=0, flags=0)函数可以根据正则表达式的匹配来切割字符串,并返回一个列表。其中,pattern是要匹配的正则表达式,string是要进行切割的字符串,maxsplit表示最大切割次数(默认为0,表示不限制切割次数),flags是可选参数,用于指定正则表达式的匹配方式。

以下是一个使用re.split函数进行字符串切割的示例:

import repattern = r"\s"  # 正则表达式匹配空格
string = "Hello   World"result = re.split(pattern, string)
print(result)

输出结果为:['Hello', '', '', 'World'],根据空格进行切割,空格被视为切割依据,得到一个包含切割结果的列表。

        注意,在正则表达式中使用特定的字符作为匹配模式时,需要使用转义字符\,或者使用原始字符串(在字符串前加上r)来避免转义字符的影响。

        re模块的split函数可以灵活地根据正则表达式进行字符串的切割,可以满足一些特殊的切割需求。


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

相关文章:

  • 花几千上万学习Java,真没必要!(四十六)
  • 【Linux操作系统】基础IO
  • 大数据-86 Spark 集群 WordCount 用 Scala Java 调用Spark 编译并打包上传运行 梦开始的地方
  • SQL 时间盲注 (injection 第十五关)
  • leetcode 堆栈(栈+优先队列)——java实现
  • 牛客网SQL进阶129 :月均完成试卷数不小于3的用户
  • spring(1)
  • Hadoop 中的大数据技术:调优篇(2)
  • 0815,析构函数,拷贝构造函数,赋值运算符函数
  • 异构数据同步 datax (2)-postgres 写扩展
  • AI小白福音来啦~Flux文生图,支持手部细节,直出精美图像,让你瞬间变高手!
  • 深度学习基础—动量梯度下降法
  • 如何将 ONLYOFFICE 与 Moodle 进行集成,让师生在学习管理平台中协作编辑办公文档
  • uniapp在线下载安装包更新app
  • FastICENet:一种用于航空遥感河流冰图像的实时精确语义分割模型
  • 数值计算引擎:搭建远程容器开发环境
  • 【数据结构】关于冒泡排序,选择排序,插入排序,希尔排序,堆排序你到底了解多少???(超详解)
  • 蒟蒻的尊严被打得一败涂地17
  • QT翻金币小游戏(含音频图片文件资源)
  • 探索数字媒体产业园区的未来之路