欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > re模块入门教程

re模块入门教程

2024/10/25 5:19:28 来源:https://blog.csdn.net/2402_86110194/article/details/141335309  浏览:    关键词: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函数可以灵活地根据正则表达式进行字符串的切割,可以满足一些特殊的切割需求。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com