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 re

pattern = r"\s"  # 正则表达式匹配空格
string = "Hello   World"

result = re.split(pattern, string)
print(result)

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

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

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

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值