I have a file like this (this is a simplified version):

james sfsf qef qef
qef qef qe fff
qqew james james qef
qefq ffgrsf wsef
qef james eq james

我想用不同的值替换“james”的每个迭代。下面是我的测试代码:
f=open('file_to_be_read.txt','r')
text=f.read()
matches=len(re.findall('james',text))
f.close()
number=0
for x in range(matches):
    new_text=re.sub(r'james',str(number),text,count=1)
    number+=1
r=open('result_file.txt','w')
r.write(new_text)
r.close()

。而不是产生我想要的以下结果:
1 sfsf qef qef
qef qef qe fff
qqew 2 3 qef
qefq ffgrsf wsef
qef 4 eq 5

我想通过使用count=1重复re.sub,每次都会替换1个james,但允许我更改替换值。

最佳答案

you're discarding the updated string - try this:

text = re.sub(r'james', str(x), text, count=1)

关于python - 用不同的替换值替换相同的模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32182578/

10-11 17:53