Python re找到特定pattern并将此pattern重复n次

要找到字符串s中的数字,并将这些数字重复3次:

import re  
  
s = "abc123def456ghi789"  
  
# 找到所有的数字  
numbers = re.findall(r'\d+', s)  
  
# 重复每个数字3次  
repeated_numbers = [num * 3 for num in numbers]  
  
# 将重复的数字放回原位置  
# re.sub() 的第一个参数是要匹配的模式,第二个参数是一个替换函数,第三个参数是要搜索和替换的字符串
# 替换函数是一个匿名函数(lambda函数),它接受一个匹配对象 mo 作为参数(并没有使用到这个匹配对象,只是简单地返回 repeated_numbers 列表的第一个元素,并将其从列表中移除)。
# re.sub() 会对字符串 s 中所有匹配到的模式进行替换,这个过程会依次取出 repeated_numbers 列表中的所有元素,并将它们分别替换到字符串 s 中匹配到的每个数字的位置。
result = re.sub(r'\d+', lambda mo: repeated_numbers.pop(0), s)  
  
print(result)

#输出为:abc111222333def444555666ghi777888999

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值