regexp search on infinite string?

James Stroud jstroud at mbi.ucla.edu
Fri Sep 14 21:57:40 EDT 2007


Paddy wrote:
> Lets say i have a generator running that generates successive
> characters of a 'string'
>>From what I know, if I want to do a regexp search for a pattern of
> characters then I would have to 'freeze' the generator  and pass the
> characters so far to re.search.
> It is expensive to create successive characters, but caching could be
> used for past characters. is it possible to wrap the generator in a
> class, possibly inheriting from string, that would allow the regexp
> searching of the string but without terminating the generator? In
> other words duck typing for the usual string object needed by
> re.search?
> 
> - Paddy.
> 

re.search & re.compile checks for str or unicode types explicitly, so 
you need to turn your data into one of those before using the module.

buffer = []
while True:
   buffer.append(mygerator.next())
   m = re.search(pattern, "".join(buffer))
   if m:
     process(m)
     buffer = []

James




More information about the Python-list mailing list