[Python-checkins] cpython (3.2): Closes #14342: remove out-of-date section about avoiding recursion errors.

georg.brandl python-checkins at python.org
Sat Mar 17 17:26:39 CET 2012


http://hg.python.org/cpython/rev/8172d7dce0ed
changeset:   75784:8172d7dce0ed
branch:      3.2
parent:      75781:9a7dcfbcf726
user:        Georg Brandl <georg at python.org>
date:        Sat Mar 17 17:25:47 2012 +0100
summary:
  Closes #14342: remove out-of-date section about avoiding recursion errors.

files:
  Doc/library/re.rst |  22 ----------------------
  1 files changed, 0 insertions(+), 22 deletions(-)


diff --git a/Doc/library/re.rst b/Doc/library/re.rst
--- a/Doc/library/re.rst
+++ b/Doc/library/re.rst
@@ -1090,28 +1090,6 @@
    (\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/python3.2/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.
-
-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()

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list