我已经为此奋斗了一段时间,并将问题简化为:我试图用“评估”之类的词替换所有“s”字符,但找到的第一个实例除外。IE as5e55ment5. 似乎 re.sub() 在调用函数 retfun() 之前完成了所有匹配。这似乎与 PyDocs 第 7.2 节 re.sub() 下的内容背道而驰。我的问题是:是否有一个我应该使用的不同功能我错过了,或者是我在下面关闭的功能,我只是错过了一些明显的东西。谢谢!(Python 3.3.2)
import re
value = "assessments"
inc = 0
def retfun(num):
global inc
if num == 0:
inc += 1
return 's'
else:
return '5'
nval = re.sub(r's', retfun(inc), value, flags=re.IGNORECASE)
print(nval)