用随机生成的数字替换字符串的一部分

时间:2018-11-15 18:56:56

标签: python string random

我有一个看起来像这样的字符串

my_string='TAG="0000" TAG="1111" TAG="2222"'

我想做的就是将这些数字替换为我字符串中随机生成的数字。

我一直在努力做类似的事情:

new_string = my_string.replace('0000',str(random.randint(1,1000000)))

这非常容易并且有效。现在,假设我想使其更具动态性(如果我的字符串很长且包含许多TAG元素),我想告诉代码:“每次在my_string中找到“ TAG =“,请将以下数字替换为随机一个”。有人有主意吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用re.sub

import re, random
my_string='TAG="0000" TAG="1111" TAG="2222"'
new_string = re.sub('(?<=TAG\=")\d+', lambda _:str(random.randint(1,1000000)), my_string)

输出:

'TAG="901888" TAG="940530" TAG="439872"'