我有一个看起来像这样的字符串
my_string='TAG="0000" TAG="1111" TAG="2222"'
我想做的就是将这些数字替换为我字符串中随机生成的数字。
我一直在努力做类似的事情:
new_string = my_string.replace('0000',str(random.randint(1,1000000)))
这非常容易并且有效。现在,假设我想使其更具动态性(如果我的字符串很长且包含许多TAG元素),我想告诉代码:“每次在my_string中找到“ TAG =“,请将以下数字替换为随机一个”。有人有主意吗?
非常感谢。
答案 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"'