Bryant Huang wrote:
Hi,
Is it possible to perform iteration within the re.sub() function call?
Sure. As the docs note:
If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string. For example:
#!/usr/bin/env python
import re
class Counter: def __init__(self): self.count = -1 def increment(self, matchObject): self.count += 1 return str(self.count)
text = "abbababbaaaaaabbaaa" expected = "a01a2a34aaaaaa56aaa"
# Replace all b's with an integer that increments from 0.
c = Counter() pat = re.compile("(b)") actual = pat.sub(c.increment, text) assert expected == actual
-- http://mail.python.org/mailman/listinfo/python-list