]> granicus.if.org Git - python/commitdiff
Closes #14342: remove out-of-date section about avoiding recursion errors.
authorGeorg Brandl <georg@python.org>
Sat, 17 Mar 2012 16:25:47 +0000 (17:25 +0100)
committerGeorg Brandl <georg@python.org>
Sat, 17 Mar 2012 16:25:47 +0000 (17:25 +0100)
Doc/library/re.rst

index e3bac50a7e267b9e356389631635a8400c32956c..c2ac332e7f5f5a72765f7a3ea2e197bb3f81a10f 100644 (file)
@@ -1077,28 +1077,6 @@ The equivalent regular expression would be ::
    (\S+) - (\d+) errors, (\d+) warnings
 
 
-Avoiding recursion
-^^^^^^^^^^^^^^^^^^
-
-If you create regular expressions that require the engine to perform a lot of
-recursion, you may encounter a :exc:`RuntimeError` exception with the message
-``maximum recursion limit`` exceeded. For example, ::
-
-   >>> s = 'Begin ' + 1000*'a very long string ' + 'end'
-   >>> re.match('Begin (\w| )*? end', s).end()
-   Traceback (most recent call last):
-     File "<stdin>", line 1, in ?
-     File "/usr/local/lib/python2.5/re.py", line 132, in match
-       return _compile(pattern, flags).match(string)
-   RuntimeError: maximum recursion limit exceeded
-
-You can often restructure your regular expression to avoid recursion.
-
-Starting with Python 2.3, simple uses of the ``*?`` pattern are special-cased to
-avoid recursion.  Thus, the above regular expression can avoid recursion by
-being recast as ``Begin [a-zA-Z0-9_ ]*?end``.  As a further benefit, such
-regular expressions will run faster than their recursive equivalents.
-
 .. _search-vs-match:
 
 search() vs. match()