Backreferences in python ?

Pankaj pankajgode at gmail.com
Mon Jan 23 10:18:13 EST 2006


I have something like below in perl and  i am searching for equivalent
in python:

::: Perl :::
***********
while( <FILEHANDLE> )
{

     line = $_;

     pattern = "printf\( \"$lineNo \" \),";

     line =~ s/"for(.*)\((*.)\;(.*)/for$1\($pattern$2\;$3/g;
}

This is used to

search for :    for ( i = 0; i < 10; i++)
Replace with:  for( printf( "10" ), i =0; i < 10; i++)
Where 10 is the line no.

****************************************
What i tried in python was::
****************************************

f = open( "./1.c", "r")
fNew = open( "./1_new.c", "w")
for l in f:
        print l
        lineno = lineno + 1
        strToFind = "for\((.*)\;(.*)"

        ##  For Converting int to string, i.e. line no. to string
        lineNoClone = lineno

        pattern = "printf(\"" + str( lineNoClone) + "\"),"

        print pattern

        strToReplace = "for\(" + pattern + "\1\;"

        fNew.write( l.replace( strToFind, strToReplace) )

        print l
                        
fNew.close()




More information about the Python-list mailing list