要找到字符串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