Cancel or timeout a long running regular expression
nobody at nowhere.com
Sat Sep 17 21:00:53 CEST 2011
On Fri, 16 Sep 2011 18:01:27 -0400, Terry Reedy wrote:
> Now, can you write that as a heuristic *algorithm*
> def dangerous_re(some_re):?
return re.search(r'\\\d', some_re) is not None
That will handle the most extreme case ;)
If the OP is serious about analysing regexps, sre_parse.parse() will
decompose a regexp to a more convenient form.
However, I wouldn't rely upon being able to catch every possible bad case.
The only robust solution is to use a separate process (threads won't
suffice, as they don't have a .kill() method).
More information about the Python-list