tags:

views:

71

answers:

1

In Perl, I would write:

$x = "abbbc";
$x =~ s/(b+)/z/;
print "Replaced $1 and ended up with $x\n";
# "Replaced bbb and ended up with azc"

How do I do this in Python -- do a regular-expression string replacement and record what it was that got replaced?

+6  A: 

Python does not simultaneously return a match and a substitution. Calling group(0) on a returned Match object will find the matched substring:

>>> r=re.compile('(b+)')
>>> r.search('abbbc')
<_sre.SRE_Match object at 0x7f04af497af8>
>>> r.search('abbbc').group(0)
'bbb'
>>> r.sub('z', 'abbbc')
'azc'
Ignacio Vazquez-Abrams