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
