re.search much slower then grep on some regular expressions

John Nagle nagle at animats.com
Sat Jul 5 00:23:19 EDT 2008


Henning_Thornblad wrote:
> What can be the cause of the large difference between re.search and
> grep?
> 
> This script takes about 5 min to run on my computer:
> #!/usr/bin/env python
> import re
> 
> row=""
> for a in range(156000):
>     row+="a"
> print re.search('[^ "=]*/',row)
> 
> 
> While doing a simple grep:
> grep '[^ "=]*/' input                  (input contains 156.000 a in
> one row)
> doesn't even take a second.
> 
> Is this a bug in python?
> 
> Thanks...
> Henning Thornblad

    You're recompiling the regular expression on each use.
Use "re.compile" before the loop to do it once.

				John Nagle



More information about the Python-list mailing list