Regular expression

Hans Nowak wurmy at earthlink.net
Tue Nov 27 06:57:12 CET 2001


Sang DeSibtis wrote:
> 
> import re,sys,string
> for line in open('junk', 'r').readlines ()
> a = re.compile('AAAA')
> b = re.compile('BBBB')
> 
> re.sub(a, 'aaaa', line)
> re.sub(b, 'bbbb', line)
> 
> print line   # nothing got changed
> 
> print re.sub(a, 'aaaa', line)   # works
> print re.sub(b, 'bbbb', line)    # works, however the line above
> doesn't work
> 
>  Questions: how do I make a global replacements in the 'line' that
> read from the file object (buffer in memory? ).Obviously, this is my
> first attemp at Python and I am not sure how things work. I want to
> replace all strings (not necessary 'AAAA' or 'BBBB' as illustrated
> here) in one pass. Will some one please explain in detail
> !!!!!!!!!!!!!!!!

re.sub gives you back a new string with the old string (pattern) 
replaced by the new one. It does not change the original string.
To apply the changes, simply do

  line = re.sub(a, 'aaaa', line)

etc...

HTH,

--Hans



More information about the Python-list mailing list