Gerard Flanagan wrote:
def replace(s, patt, repls): def onmatch(m): onmatch.idx += 1 return repls[onmatch.idx] onmatch.idx = -1 return patt.sub(onmatch, s)
test = """ abcTAG TAG asdTAGxyz """ REPLS = [ 'REPL1', 'REPL2', 'REPL3', ] print replace(test, re.compile('TAG'), REPLS) --
or better: import re def replace(s, patt, repls): repls = iter(repls) return patt.sub(lambda m: repls.next(), s) test = """ abcTAG TAG asdTAGxyz """ def repls(tag): i = 0 while True: i += 1 yield tag + str(i) print replace(test, re.compile('TAG'), repls('REPL')) -- http://mail.python.org/mailman/listinfo/python-list