blob: e2023de5fe396eccb73c50d0e029c640d2508fa9 [file] [log] [blame]
Fred Drake295da241998-08-10 19:42:37 +00001\section{\module{string} ---
Fred Drakeffbe6871999-04-22 21:23:22 +00002 Common string operations}
Fred Drakeb91e9341998-07-23 17:59:49 +00003
Fred Drakeffbe6871999-04-22 21:23:22 +00004\declaremodule{standard}{string}
Fred Drakeb91e9341998-07-23 17:59:49 +00005\modulesynopsis{Common string operations.}
6
Guido van Rossum5fdeeea1994-01-02 01:22:07 +00007
8This module defines some constants useful for checking character
Fred Drake6d2bdb61997-12-16 04:04:25 +00009classes and some useful string functions. See the module
Fred Drakeffbe6871999-04-22 21:23:22 +000010\refmodule{re}\refstmodindex{re} for string functions based on regular
Fred Drakecce10901998-03-17 06:33:25 +000011expressions.
Guido van Rossum0bf4d891995-03-02 12:37:30 +000012
13The constants defined in this module are are:
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000014
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000015\begin{datadesc}{digits}
16 The string \code{'0123456789'}.
17\end{datadesc}
18
19\begin{datadesc}{hexdigits}
20 The string \code{'0123456789abcdefABCDEF'}.
21\end{datadesc}
22
23\begin{datadesc}{letters}
Fred Drakecce10901998-03-17 06:33:25 +000024 The concatenation of the strings \function{lowercase()} and
25 \function{uppercase()} described below.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000026\end{datadesc}
27
28\begin{datadesc}{lowercase}
29 A string containing all the characters that are considered lowercase
30 letters. On most systems this is the string
Guido van Rossum86751151995-02-28 17:14:32 +000031 \code{'abcdefghijklmnopqrstuvwxyz'}. Do not change its definition ---
Fred Drakecce10901998-03-17 06:33:25 +000032 the effect on the routines \function{upper()} and
33 \function{swapcase()} is undefined.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000034\end{datadesc}
35
36\begin{datadesc}{octdigits}
37 The string \code{'01234567'}.
38\end{datadesc}
39
40\begin{datadesc}{uppercase}
41 A string containing all the characters that are considered uppercase
42 letters. On most systems this is the string
Guido van Rossum86751151995-02-28 17:14:32 +000043 \code{'ABCDEFGHIJKLMNOPQRSTUVWXYZ'}. Do not change its definition ---
Fred Drakecce10901998-03-17 06:33:25 +000044 the effect on the routines \function{lower()} and
45 \function{swapcase()} is undefined.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000046\end{datadesc}
47
48\begin{datadesc}{whitespace}
49 A string containing all characters that are considered whitespace.
50 On most systems this includes the characters space, tab, linefeed,
Guido van Rossum86751151995-02-28 17:14:32 +000051 return, formfeed, and vertical tab. Do not change its definition ---
Fred Drakecce10901998-03-17 06:33:25 +000052 the effect on the routines \function{strip()} and \function{split()}
53 is undefined.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000054\end{datadesc}
55
Guido van Rossum0bf4d891995-03-02 12:37:30 +000056The functions defined in this module are:
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000057
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000058
59\begin{funcdesc}{atof}{s}
Fred Drakee8489761998-12-21 18:56:13 +000060 Convert a string to a floating point number. The string must have
61 the standard syntax for a floating point literal in Python,
Fred Drake70a66c91999-02-18 16:08:36 +000062 optionally preceded by a sign (\samp{+} or \samp{-}). Note that
63 this behaves identical to the built-in function
64 \function{float()}\bifuncindex{float} when passed a string.
65
66 \strong{Note:} When passing in a string, values for NaN\index{NaN}
67 and Infinity\index{Infinity} may be returned, depending on the
68 underlying C library. The specific set of strings accepted which
69 cause these values to be returned depends entirely on the C library
70 and is known to vary.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000071\end{funcdesc}
72
Fred Drakecce10901998-03-17 06:33:25 +000073\begin{funcdesc}{atoi}{s\optional{, base}}
Fred Drakee8489761998-12-21 18:56:13 +000074 Convert string \var{s} to an integer in the given \var{base}. The
75 string must consist of one or more digits, optionally preceded by a
76 sign (\samp{+} or \samp{-}). The \var{base} defaults to 10. If it
77 is 0, a default base is chosen depending on the leading characters
78 of the string (after stripping the sign): \samp{0x} or \samp{0X}
79 means 16, \samp{0} means 8, anything else means 10. If \var{base}
80 is 16, a leading \samp{0x} or \samp{0X} is always accepted. Note
81 that when invoked without \var{base} or with \var{base} set to 10,
82 this behaves identical to the built-in function \function{int()}
83 when passed a string. (Also note: for a more flexible
84 interpretation of numeric literals, use the built-in function
85 \function{eval()}\bifuncindex{eval}.)
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000086\end{funcdesc}
87
Fred Drakecce10901998-03-17 06:33:25 +000088\begin{funcdesc}{atol}{s\optional{, base}}
Fred Drakee8489761998-12-21 18:56:13 +000089 Convert string \var{s} to a long integer in the given \var{base}.
90 The string must consist of one or more digits, optionally preceded
91 by a sign (\samp{+} or \samp{-}). The \var{base} argument has the
92 same meaning as for \function{atoi()}. A trailing \samp{l} or
93 \samp{L} is not allowed, except if the base is 0. Note that when
94 invoked without \var{base} or with \var{base} set to 10, this
95 behaves identical to the built-in function
96 \function{long()}\bifuncindex{long} when passed a string.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000097\end{funcdesc}
98
Guido van Rossume5e55d71996-08-09 21:44:51 +000099\begin{funcdesc}{capitalize}{word}
Fred Drakee8489761998-12-21 18:56:13 +0000100 Capitalize the first character of the argument.
Guido van Rossume5e55d71996-08-09 21:44:51 +0000101\end{funcdesc}
102
103\begin{funcdesc}{capwords}{s}
Fred Drakee8489761998-12-21 18:56:13 +0000104 Split the argument into words using \function{split()}, capitalize
105 each word using \function{capitalize()}, and join the capitalized
106 words using \function{join()}. Note that this replaces runs of
107 whitespace characters by a single space, and removes leading and
108 trailing whitespace.
Guido van Rossume5e55d71996-08-09 21:44:51 +0000109\end{funcdesc}
110
Guido van Rossum9700e9b1999-01-25 22:31:53 +0000111\begin{funcdesc}{expandtabs}{s, \optional{tabsize}}
Fred Drakee8489761998-12-21 18:56:13 +0000112 Expand tabs in a string, i.e.\ replace them by one or more spaces,
113 depending on the current column and the given tab size. The column
114 number is reset to zero after each newline occurring in the string.
115 This doesn't understand other non-printing characters or escape
Guido van Rossum9700e9b1999-01-25 22:31:53 +0000116 sequences. The tab size defaults to 8.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000117\end{funcdesc}
118
Fred Drakecce10901998-03-17 06:33:25 +0000119\begin{funcdesc}{find}{s, sub\optional{, start\optional{,end}}}
Fred Drakee8489761998-12-21 18:56:13 +0000120 Return the lowest index in \var{s} where the substring \var{sub} is
121 found such that \var{sub} is wholly contained in
122 \code{\var{s}[\var{start}:\var{end}]}. Return \code{-1} on failure.
123 Defaults for \var{start} and \var{end} and interpretation of
124 negative values is the same as for slices.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000125\end{funcdesc}
126
Fred Drakecce10901998-03-17 06:33:25 +0000127\begin{funcdesc}{rfind}{s, sub\optional{, start\optional{, end}}}
Fred Drakee8489761998-12-21 18:56:13 +0000128 Like \function{find()} but find the highest index.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000129\end{funcdesc}
130
Fred Drakecce10901998-03-17 06:33:25 +0000131\begin{funcdesc}{index}{s, sub\optional{, start\optional{, end}}}
Fred Drakee8489761998-12-21 18:56:13 +0000132 Like \function{find()} but raise \exception{ValueError} when the
133 substring is not found.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000134\end{funcdesc}
135
Fred Drakecce10901998-03-17 06:33:25 +0000136\begin{funcdesc}{rindex}{s, sub\optional{, start\optional{, end}}}
Fred Drakee8489761998-12-21 18:56:13 +0000137 Like \function{rfind()} but raise \exception{ValueError} when the
138 substring is not found.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000139\end{funcdesc}
140
Fred Drakecce10901998-03-17 06:33:25 +0000141\begin{funcdesc}{count}{s, sub\optional{, start\optional{, end}}}
Fred Drakee8489761998-12-21 18:56:13 +0000142 Return the number of (non-overlapping) occurrences of substring
143 \var{sub} in string \code{\var{s}[\var{start}:\var{end}]}.
144 Defaults for \var{start} and \var{end} and interpretation of
145 negative values is the same as for slices.
Guido van Rossumab3a2501994-08-01 12:18:36 +0000146\end{funcdesc}
147
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000148\begin{funcdesc}{lower}{s}
Fred Drakee8489761998-12-21 18:56:13 +0000149 Return a copy of \var{s}, but with upper case letters converted to
150 lower case.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000151\end{funcdesc}
152
Guido van Rossumf4d0d571996-07-30 18:23:05 +0000153\begin{funcdesc}{maketrans}{from, to}
Fred Drakee8489761998-12-21 18:56:13 +0000154 Return a translation table suitable for passing to
155 \function{translate()} or \function{regex.compile()}, that will map
156 each character in \var{from} into the character at the same position
157 in \var{to}; \var{from} and \var{to} must have the same length.
Guido van Rossuma3eebe61998-06-11 16:03:30 +0000158
Fred Drakee8489761998-12-21 18:56:13 +0000159 \strong{Warning:} don't use strings derived from \code{lowercase}
160 and \code{uppercase} as arguments; in some locales, these don't have
161 the same length. For case conversions, always use
162 \function{lower()} and \function{upper()}.
Guido van Rossumf4d0d571996-07-30 18:23:05 +0000163\end{funcdesc}
164
Fred Drakecce10901998-03-17 06:33:25 +0000165\begin{funcdesc}{split}{s\optional{, sep\optional{, maxsplit}}}
Fred Drakee8489761998-12-21 18:56:13 +0000166 Return a list of the words of the string \var{s}. If the optional
167 second argument \var{sep} is absent or \code{None}, the words are
168 separated by arbitrary strings of whitespace characters (space, tab,
169 newline, return, formfeed). If the second argument \var{sep} is
170 present and not \code{None}, it specifies a string to be used as the
171 word separator. The returned list will then have one more items
172 than the number of non-overlapping occurrences of the separator in
173 the string. The optional third argument \var{maxsplit} defaults to
174 0. If it is nonzero, at most \var{maxsplit} number of splits occur,
175 and the remainder of the string is returned as the final element of
176 the list (thus, the list will have at most \code{\var{maxsplit}+1}
177 elements).
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000178\end{funcdesc}
179
Fred Drakecce10901998-03-17 06:33:25 +0000180\begin{funcdesc}{splitfields}{s\optional{, sep\optional{, maxsplit}}}
Fred Drakee8489761998-12-21 18:56:13 +0000181 This function behaves identically to \function{split()}. (In the
182 past, \function{split()} was only used with one argument, while
183 \function{splitfields()} was only used with two arguments.)
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000184\end{funcdesc}
185
Fred Drakecce10901998-03-17 06:33:25 +0000186\begin{funcdesc}{join}{words\optional{, sep}}
Fred Drakee8489761998-12-21 18:56:13 +0000187 Concatenate a list or tuple of words with intervening occurrences of
188 \var{sep}. The default value for \var{sep} is a single space
189 character. It is always true that
190 \samp{string.join(string.split(\var{s}, \var{sep}), \var{sep})}
191 equals \var{s}.
Guido van Rossume5e55d71996-08-09 21:44:51 +0000192\end{funcdesc}
193
Fred Drakecce10901998-03-17 06:33:25 +0000194\begin{funcdesc}{joinfields}{words\optional{, sep}}
Fred Drakee8489761998-12-21 18:56:13 +0000195 This function behaves identical to \function{join()}. (In the past,
196 \function{join()} was only used with one argument, while
197 \function{joinfields()} was only used with two arguments.)
Guido van Rossume5e55d71996-08-09 21:44:51 +0000198\end{funcdesc}
199
200\begin{funcdesc}{lstrip}{s}
Fred Drakee8489761998-12-21 18:56:13 +0000201 Return a copy of \var{s} but without leading whitespace characters.
Guido van Rossume5e55d71996-08-09 21:44:51 +0000202\end{funcdesc}
203
204\begin{funcdesc}{rstrip}{s}
Fred Drakee8489761998-12-21 18:56:13 +0000205 Return a copy of \var{s} but without trailing whitespace
206 characters.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000207\end{funcdesc}
208
209\begin{funcdesc}{strip}{s}
Fred Drakee8489761998-12-21 18:56:13 +0000210 Return a copy of \var{s} without leading or trailing whitespace.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000211\end{funcdesc}
212
213\begin{funcdesc}{swapcase}{s}
Fred Drakee8489761998-12-21 18:56:13 +0000214 Return a copy of \var{s}, but with lower case letters
215 converted to upper case and vice versa.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000216\end{funcdesc}
217
Guido van Rossumf4d0d571996-07-30 18:23:05 +0000218\begin{funcdesc}{translate}{s, table\optional{, deletechars}}
Fred Drakee8489761998-12-21 18:56:13 +0000219 Delete all characters from \var{s} that are in \var{deletechars} (if
220 present), and then translate the characters using \var{table}, which
221 must be a 256-character string giving the translation for each
222 character value, indexed by its ordinal.
Guido van Rossumf65f2781995-09-13 17:37:21 +0000223\end{funcdesc}
224
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000225\begin{funcdesc}{upper}{s}
Fred Drakee8489761998-12-21 18:56:13 +0000226 Return a copy of \var{s}, but with lower case letters converted to
227 upper case.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000228\end{funcdesc}
229
Fred Drakecce10901998-03-17 06:33:25 +0000230\begin{funcdesc}{ljust}{s, width}
231\funcline{rjust}{s, width}
232\funcline{center}{s, width}
Fred Drakee8489761998-12-21 18:56:13 +0000233 These functions respectively left-justify, right-justify and center
234 a string in a field of given width. They return a string that is at
235 least \var{width} characters wide, created by padding the string
236 \var{s} with spaces until the given width on the right, left or both
237 sides. The string is never truncated.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000238\end{funcdesc}
239
Fred Drakecce10901998-03-17 06:33:25 +0000240\begin{funcdesc}{zfill}{s, width}
Fred Drakee8489761998-12-21 18:56:13 +0000241 Pad a numeric string on the left with zero digits until the given
242 width is reached. Strings starting with a sign are handled
243 correctly.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000244\end{funcdesc}
Guido van Rossum0bf4d891995-03-02 12:37:30 +0000245
Guido van Rossum740eb821997-04-02 05:56:16 +0000246\begin{funcdesc}{replace}{str, old, new\optional{, maxsplit}}
Fred Drakee8489761998-12-21 18:56:13 +0000247 Return a copy of string \var{str} with all occurrences of substring
248 \var{old} replaced by \var{new}. If the optional argument
249 \var{maxsplit} is given, the first \var{maxsplit} occurrences are
250 replaced.
Guido van Rossumc8a80cd1997-03-25 16:41:31 +0000251\end{funcdesc}
252
Guido van Rossum0bf4d891995-03-02 12:37:30 +0000253This module is implemented in Python. Much of its functionality has
Fred Drakecce10901998-03-17 06:33:25 +0000254been reimplemented in the built-in module
255\module{strop}\refbimodindex{strop}. However, you
Guido van Rossum0bf4d891995-03-02 12:37:30 +0000256should \emph{never} import the latter module directly. When
Fred Drakecce10901998-03-17 06:33:25 +0000257\module{string} discovers that \module{strop} exists, it transparently
258replaces parts of itself with the implementation from \module{strop}.
Guido van Rossum0bf4d891995-03-02 12:37:30 +0000259After initialization, there is \emph{no} overhead in using
Fred Drakecce10901998-03-17 06:33:25 +0000260\module{string} instead of \module{strop}.