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.
This commit is contained in:
Barry Warsaw 1997-11-20 00:15:13 +00:00
parent bd1169a93e
commit 4552f3d6de
2 changed files with 36 additions and 8 deletions

View file

@ -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'.

View file

@ -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'.