As Peter Otten said, sub() is probably what you want. Try:
---------------------------------------------------
import re
def _ok(matchobject):
# more complicated stuff happens here
return 1
def _massage(word):
return "_" + word + "_"
def _massage_or_not(matchobj):
if not _ok(matchobj):
return matchobj.group(0)
else:
word = matchobj.group(0)
return _massage(word)
text = "don't allow the fuck swear word"
rtext = re.sub(r'fuck', _massage_or_not, text)
print rtext
---------------------------------------------------
No need to hassle with the changing length of the replaced string.
Best regards,
Adriano.
--
http://mail.python.org/mailman/listinfo/python-list