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. -- http://mail.python.org/mailman/listinfo/python-list