python实现批量替换字符串中的数字
如字符串:“a2aa2bbb3ccc4dddd”,现在希望将串里的2,2,3,4替换成11,22,33,44
那么需要传入两个参数;
第一个参数是目标字符串——“a2aa2bbb3ccc4dddd”;
第二个参数是替换后的值——[11,22,33,44]
完整代码如下:
import redef 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 resultif __name__ == '__main__':s=updatePath('aaa2bbb3ccc4dddd',[222,333,444])print(s)
运行结果:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
