Ok I think I understand what is going: I'm using a 0 in the replacement argument, between the two groups. If I try with a letter or other types of characters it works fine. So how can use a digit here?
Thanks Bernard On 9/8/05, Bernard Lebel <[EMAIL PROTECTED]> wrote: > Hi Kent, > > This is nice! > > There is one thing though. When I run the oRe.sub() call, I get an error: > > > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File > "\\Linuxserver\prod\XSI\WORKGROUP_4.0\Data\Scripts\pipeline\filesystem\bb_processshotdigits.py", > line 63, in ? > processPath( r'C:\temp\MT_03_03_03\allo.txt', False ) > File > "\\Linuxserver\prod\XSI\WORKGROUP_4.0\Data\Scripts\pipeline\filesystem\bb_processshotdigits.py", > line 45, in processPath > else: sSubString = matchShot( sSubString ) > File > "\\Linuxserver\prod\XSI\WORKGROUP_4.0\Data\Scripts\pipeline\filesystem\bb_processshotdigits.py", > line 11, in matchShot > sNewString = oRe.sub( r'\10\2', sSubString ) > File "D:\Python24\Lib\sre.py", line 260, in filter > return sre_parse.expand_template(template, match) > File "D:\Python24\Lib\sre_parse.py", line 781, in expand_template > raise error, "invalid group reference" > sre_constants.error: invalid group reference > > > > This is my new match function: > > > > def matchShot( sSubString ): > > # Create regular expression object > oRe = re.compile( "(\d\d_\d\d\_)(\d\d)" ) > > oMatch = oRe.search( sSubString ) > if oMatch != None: > sNewString = oRe.sub( r'\10\2', sSubString ) > return sNewString > else: > return sSubString > > > > I have read the sub() documentation entry but I have to confess that > made things more confusing for me... > > Thanks again > Bernard _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor