summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2012-03-17 16:25:47 (GMT)
committerGeorg Brandl <georg@python.org>2012-03-17 16:25:47 (GMT)
commitce54617260790a523c246a1f4080b8e82386cd20 (patch)
tree2735aecfd246c0dfde5b36e873fce532c1930069
parentf354f8e369e1e903d489e6dbac01f94d905dc022 (diff)
downloadcpython-ce54617260790a523c246a1f4080b8e82386cd20.zip
cpython-ce54617260790a523c246a1f4080b8e82386cd20.tar.gz
cpython-ce54617260790a523c246a1f4080b8e82386cd20.tar.bz2
Closes #14342: remove out-of-date section about avoiding recursion errors.
-rw-r--r--Doc/library/re.rst22
1 files changed, 0 insertions, 22 deletions
diff --git a/Doc/library/re.rst b/Doc/library/re.rst
index e3bac50..c2ac332 100644
--- a/Doc/library/re.rst
+++ b/Doc/library/re.rst
@@ -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()