Find and replace multiple RegEx search expressions

Peter Otten __peter__ at web.de
Tue Mar 18 10:48:03 CET 2014


Jignesh Sutar wrote:

> Hi,
> 
> I'm trying to delete contents of a .txt log file, matching on multiple
> re.sub criteria but not sure how to achieve this.
> 
> Below is an illustration of what I am trying to achieve (of course in this
> example I can combine the 3 re.sub into a single re expression but my
> actual code will have a dozen plus expression I need to match on so easier
> to keep them separate). Only the last re.sub will take effect in the
> example below I need all 3 to take effect.
> 
> 
> import re
> o = open(r"c:\temp\outputfile.txt","w")
> data = open(r"C:\Temp\infile.txt").read()
> o.write( re.sub(".*<X>     ","",data) )
> o.write( re.sub(".*<Y>     ","",data) )
> o.write( re.sub(".*<Z>     ","",data) )
> o.close()

Apply all substitutions to data before you write the result to the file:

with open(infile) as f:
    data = f.read()

for expr in list_of_regexes:
    data = re.sub(expr, "", data)

with open(outfile, "w") as f:
    f.write(data)





More information about the Python-list mailing list