From 4552f3d6def852342036774163b96e556d626619 Mon Sep 17 00:00:00 2001
From: Barry Warsaw <barry@python.org>
Date: Thu, 20 Nov 1997 00:15:13 +0000
Subject: In the description of sub(), give a better explanation of the
 interface when repl is a function.  Also give a simple example of using a
 function repl.

---
 Doc/lib/libre.tex | 22 ++++++++++++++++++----
 Doc/libre.tex     | 22 ++++++++++++++++++----
 2 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/Doc/lib/libre.tex b/Doc/lib/libre.tex
index bf6aeb8..0d14164 100644
--- a/Doc/lib/libre.tex
+++ b/Doc/lib/libre.tex
@@ -308,10 +308,24 @@ regular expression metacharacters in it.
 \begin{funcdesc}{sub}{pattern\, repl\, string\optional{, count=0}}
 Return the string obtained by replacing the leftmost non-overlapping
 occurrences of \var{pattern} in \var{string} by the replacement
-\var{repl}, which can be a string or the function that returns a string.  If the pattern isn't found, \var{string} is returned unchanged. The
-pattern may be a string or a regexp object; if you need to specify
-regular expression flags, you must use a regexp object, or use
-embedded modifiers in a pattern string; e.g.
+\var{repl}.  If the pattern isn't found, \var{string} is returned
+unchanged.  \var{repl} can be a string or a function; if a function,
+it is called for every non-overlapping occurance of \var{pattern}.
+The function takes a single match object argument, and 
+returns the replacement string.  For example:
+%
+\bcode\begin{verbatim}
+>>> def dashrepl(matchobj):
+...    if matchobj.group(0) == '-': return ' '
+...    else: return '-'
+>>> re.sub('-{1,2}', dashrepl, 'pro----gram-files')
+'pro--gram files'
+\end{verbatim}\ecode
+%
+The pattern may be a string or a
+regexp object; if you need to specify regular expression flags, you
+must use a regexp object, or use embedded modifiers in a pattern
+string; e.g.
 %
 \bcode\begin{verbatim}
 sub("(?i)b+", "x", "bbbb BBBB") returns 'x x'.
diff --git a/Doc/libre.tex b/Doc/libre.tex
index bf6aeb8..0d14164 100644
--- a/Doc/libre.tex
+++ b/Doc/libre.tex
@@ -308,10 +308,24 @@ regular expression metacharacters in it.
 \begin{funcdesc}{sub}{pattern\, repl\, string\optional{, count=0}}
 Return the string obtained by replacing the leftmost non-overlapping
 occurrences of \var{pattern} in \var{string} by the replacement
-\var{repl}, which can be a string or the function that returns a string.  If the pattern isn't found, \var{string} is returned unchanged. The
-pattern may be a string or a regexp object; if you need to specify
-regular expression flags, you must use a regexp object, or use
-embedded modifiers in a pattern string; e.g.
+\var{repl}.  If the pattern isn't found, \var{string} is returned
+unchanged.  \var{repl} can be a string or a function; if a function,
+it is called for every non-overlapping occurance of \var{pattern}.
+The function takes a single match object argument, and 
+returns the replacement string.  For example:
+%
+\bcode\begin{verbatim}
+>>> def dashrepl(matchobj):
+...    if matchobj.group(0) == '-': return ' '
+...    else: return '-'
+>>> re.sub('-{1,2}', dashrepl, 'pro----gram-files')
+'pro--gram files'
+\end{verbatim}\ecode
+%
+The pattern may be a string or a
+regexp object; if you need to specify regular expression flags, you
+must use a regexp object, or use embedded modifiers in a pattern
+string; e.g.
 %
 \bcode\begin{verbatim}
 sub("(?i)b+", "x", "bbbb BBBB") returns 'x x'.
-- 
cgit v0.12

