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

Reply via email to