summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libregsub.tex
blob: bbb7671678a28b69b5a75e1bf50c4a5697746531 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
\section{Standard Module \sectcode{regsub}}

\stmodindex{regsub}
This module defines a number of functions useful for working with
regular expressions (see built-in module \code{regex}).

Warning: these functions are not thread-safe.

\renewcommand{\indexsubitem}{(in module regsub)}
\begin{funcdesc}{sub}{pat\, repl\, str}
Replace the first occurrence of pattern \var{pat} in string
\var{str} by replacement \var{repl}.  If the pattern isn't found,
the string is returned unchanged.  The pattern may be a string or an
already compiled pattern.  The replacement may contain references
\samp{\e \var{digit}} to subpatterns and escaped backslashes.
\end{funcdesc}

\begin{funcdesc}{gsub}{pat\, repl\, str}
Replace all (non-overlapping) occurrences of pattern \var{pat} in
string \var{str} by replacement \var{repl}.  The same rules as for
\code{sub()} apply.  Empty matches for the pattern are replaced only
when not adjacent to a previous match, so e.g.
\code{gsub('', '-', 'abc')} returns \code{'-a-b-c-'}.
\end{funcdesc}

\begin{funcdesc}{split}{str\, pat\optional{\, retain}}
Split the string \var{str} in fields separated by delimiters matching
the pattern \var{pat}, and return a list containing the fields.  Only
non-empty matches for the pattern are considered, so e.g.
\code{split('a:b', ':*')} returns \code{['a', 'b']} and
\code{split('abc', '')} returns \code{['abc']}.
If the optional \var{retain} argument is true, the separators are also
inserted in the list, so e.g. \code{split('a:::b', ':*', 1)} returns
\code{['a', ':::', 'b']}.
\end{funcdesc}