如字符串:“a2aa2bbb3ccc4dddd”,现在希望将串里的2,2,3,4替换成11,22,33,44

那么需要传入两个参数;
第一个参数是目标字符串——“a2aa2bbb3ccc4dddd”;
第二个参数是替换后的值——[11,22,33,44]
完整代码如下:

import re


def updatePath(path='', nowpath=[]):
    kv = []
    nums = []
    beforeDatas = re.findall('\d', path)
    for num in beforeDatas:
        indexV = []
        times = path.count(num)
        if (times > 1):
            if (num not in nums):
                indexs = re.finditer(num, path)
                for index in indexs:
                    iV = []
                    i = index.span()[0]
                    iV.append(num)
                    iV.append(i)
                    kv.append(iV)
            nums.append(num)
        else:
            index = path.find(num)
            indexV.append(num)
            indexV.append(index)
            kv.append(indexV)
    # 根据数字位置排序
    indexSort = []
    resultIndex = []
    for vi in kv:
        indexSort.append(vi[1])
    indexSort.sort()
    for i in indexSort:
        for v in kv:
            if (i == v[1]):
                resultIndex.append(v)
    temp = []
    for i in range(len(nowpath)):
        if (i == 0):
            index0 = int(resultIndex[0][1])
            p = path[:index0]
            temp.append(p)
        elif (i == len(nowpath) - 1):
            indexstart = int(resultIndex[i - 1][1]) + len(resultIndex[i - 1][0])
            indexend = int(resultIndex[i][1])
            p = path[indexstart:indexend]
            temp.append(p)
            indexlast = int(resultIndex[i][1])
            p = path[indexlast + len(resultIndex[i][0]):]
            temp.append(p)

        else:
            indexstart = int(resultIndex[i - 1][1]) + len(resultIndex[i - 1][0])
            indexend = int(resultIndex[i][1])
            p = path[indexstart:indexend]
            temp.append(p)
    for i in range(len(nowpath)):
        temp[i + 1] = str(nowpath[i]) + temp[i + 1]
    result = ''.join(temp)
    return result



if __name__ == '__main__':
    s=updatePath('aaa2bbb3ccc4dddd',[222,333,444])
    print(s)

运行结果:

python 替换字母 python中文字符替换数字字符_3c