Bug? concatenate a number to a backreference: re.sub(r'(zzz:)xxx', r'\1'+str(4444), somevar)

abdulet abdulet at gmail.com
Fri Oct 23 13:17:24 CEST 2009


Well its this normal? i want to concatenate a number to a
backreference in a regular expression. Im working in a multprocess
script so the first what i think is in an error in the multiprocess
logic but what a sorprise!!! when arrived to this conclussion after
some time debugging i see that:

import re
aa = "zzz:xxx"
re.sub(r'(zzz:).*',r'\1'+str(3333),aa)
'[33'

¿?¿?¿? well lets put a : after the backreference

aa = "zzz:xxx"
re.sub(r'(zzz).*',r'\1:'+str(3333),aa)
'zzz:3333'

now its the expected result.... so
should i expect that python concatenate the string to the
backreference before substitute the backreference? or is a bug

tested on:
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit
(Intel)] on win32
Python 2.5.2 (r252:60911, Jan  4 2009, 17:40:26) [GCC 4.3.2] on linux2

with the same result

Cheers!



More information about the Python-list mailing list