正则表达式(二)之 re模块的方法

re模块的方法:

使用的关键字:
pattern: 匹配模型
string:目标字符串
flags: 匹配的模式

  1. re.match(pattern, string, flags):
    功能: 从一个字符串开始去匹配。

    qq_num = "8888999aaa"   #定义一个字符串
    pattern_str = r"[1-9]\d{4,10}"  #定义正则表达式,匹配位数为 5-11位的字符串
    print(re.match(pattern_str, qq_num))
    
    #返回值:<re.Match object; span=(0, 7), match='8888999'>
    
  2. re.search(pattern, string, flags):
    功能: 扫描字符串(从任意位置开始查找),寻找匹配,匹配到了就返回,只能匹配一个满足条件的结果。

    str_test = "aaabbbaaacccaaa"
    pattern = "aaa"
    print(re.search(pattern, str_test))
    
    #返回值:<re.Match object; span=(0, 3), match='aaa'>
    
  3. re.findall(pattern, string, flags):
    功能: 查找所有满足匹配模型的结果,以list作为返回的结果。

    str_test = "aaabbbaaacccaaa"
    pattern = "aaa"
    print(re.findall(pattern, str_test))
    
    #返回值:['aaa', 'aaa', 'aaa']
    
  4. re.finditer(pattern, string, flags):
    功能: 查找所有满足匹配模型的结果,返回一个迭代器。

    str_test = "aaabbbaaacccaaa"
    pattern = "aaa"
    print(re.finditer(pattern, str_test))
    
    #返回值:<callable_iterator object at 0x000001D25982FE80>
    
  5. re.sub(pattern, string, count=0, flags=0):
    功能: 替换字符串中符合匹配模型的内容,即替换repl,也可以控制替换的次数count

    str_test = "计算机,软件,网络,大数据"
    print(re.sub(",", "|", str_test, count=2))  #count控制替换的次数
    
    #返回值:计算机|软件|网络,大数据
    
  6. re.subn(pattern, repl, string, count=0, flags=0):
    功能: 替换字符串中符合匹配模型的内容,替换repl,也可以控制替换的次数count返回值:new_string, number=》替换后的字符串,替换次数。

    str_test = "aaabbbaaacccaaa"
    pattern = "aaa"
    print(re.subn(pattern, "bbb", str_test, count=2))  #将"aaa"替换为"bbb", 并控制替换2次
    
    #返回值:('bbbbbbbbbcccaaa', 2)
    
  7. re.split(pattern, string, maxsplit=0, flags=0):

    功能: 根据匹配模型来进行切割,maxsplt在于控制切割次数。

    str_test = "aaabbbaaacccaaa"
    pattern = "aaa"
    print(re.split(pattern, str_test, maxsplit=2))  #控制切割次数为2次
    
    #返回值:['', 'bbb', 'cccaaa']
    
  8. re.compile(pattern, flags):
    编译。这是因为我们在调用re.match, re.search …时候,它的内部会先去编译匹配模型和模式之后,获取到pattern对象。

str_test = "aaaaaaaaa"
str_test2 = "bbbbbbbbb"
str_test3 = "ccccccccc"
pattern = "[abc]"   #匹配"a" "b" "c"中的任意一个
obj = re.compile(pattern)   #去编译search模型来获取pattern的对象
print(obj.search(str_test))
print(obj.search(str_test2))
print(obj.search(str_test3))

#返回值:<re.Match object; span=(0, 1), match='a'>
        <re.Match object; span=(0, 1), match='b'>
        <re.Match object; span=(0, 1), match='c'>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值