Jonathan Gardner wrote: > On Feb 15, 7:59 am, Steve Holden <st...@holdenweb.com> wrote: >> pyt...@bdurham.com wrote: >>> Is there any way to time out a regular expression in Python 2.6.4? >>> Motiviation: Our application allows users to enter regular expressions >>> as validation criteria. If a user enters a pathological regular >>> expression, we would like to timeout the evaluation of this expression >>> after a short period of time. >> Python itself does not contain any mechanism to terminate an operation >> if it takes too much time. >> >> One approach would be to run the regex in a subprocess, and apply >> process limits to terminate that subprocess if it ran too long. >> >> This group being what it is you are likely to receive other, better >> suggestions too. >> > > I'm not sure how exactly the re module is implemented, but since I > assume a great chunk is in C code, you may get away with a single > process and multiple threads. One thread will watch the process, or > have a timer event set to go off at a certain point. The other will > actually run the regex and get killed by the timer process if it > doesn't finish in time.
That would be a great idea if it were possible to kill a thread form outside. Unfortunately it's not, so the best you can do is set a flag and have it queried periodically. This is not practical during re matching. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 PyCon is coming! Atlanta, Feb 2010 http://us.pycon.org/ Holden Web LLC http://www.holdenweb.com/ UPCOMING EVENTS: http://holdenweb.eventbrite.com/ -- http://mail.python.org/mailman/listinfo/python-list