Commit 3aeea9e9 authored by Juanma Barranquero's avatar Juanma Barranquero
Browse files

(Creating Strings): Update split-string specification and examples.

parent 6a646626
...@@ -259,30 +259,46 @@ description of @code{mapconcat} in @ref{Mapping Functions}, ...@@ -259,30 +259,46 @@ description of @code{mapconcat} in @ref{Mapping Functions},
Lists}. Lists}.
@end defun @end defun
@defun split-string string separators @defun split-string string separators omit-nulls
This function splits @var{string} into substrings at matches for the regular This function splits @var{string} into substrings at matches for the regular
expression @var{separators}. Each match for @var{separators} defines a expression @var{separators}. Each match for @var{separators} defines a
splitting point; the substrings between the splitting points are made splitting point; the substrings between the splitting points are made
into a list, which is the value returned by @code{split-string}. into a list, which is the value returned by @code{split-string}. If
@var{omit-nulls} is @code{t}, null strings will be removed from the
result list. Otherwise, null strings are left in the result.
If @var{separators} is @code{nil} (or omitted), If @var{separators} is @code{nil} (or omitted),
the default is @code{"[ \f\t\n\r\v]+"}. the default is the value of @code{split-string-default-separators}.
For example, @defvar split-string-default-separators
The default value of @var{separators} for @code{split-string}, initially
@samp{"[ \f\t\n\r\v]+"}.
As a special case, when @var{separators} is @code{nil} (or omitted),
null strings are always omitted from the result. Thus:
@example @example
(split-string "Soup is good food" "o") (split-string " two words ")
@result{} ("S" "up is g" "" "d f" "" "d") @result{} ("two" "words")
(split-string "Soup is good food" "o+") @end example
@result{} ("S" "up is g" "d f" "d")
The result is not @samp{("" "two" "words" "")}, which would rarely be
useful. If you need such a result, use an explict value for
@var{separators}:
@example
(split-string " two words " split-string-default-separators)
@result{} ("" "two" "words" "")
@end example @end example
When there is a match adjacent to the beginning or end of the string, More examples:
this does not cause a null string to appear at the beginning or end
of the list:
@example @example
(split-string "out to moo" "o+") (split-string "Soup is good food" "o")
@result{} ("ut t" " m") @result{} ("S" "up is g" "" "d f" "" "d")
(split-string "Soup is good food" "o" t)
@result{} ("S" "up is g" "d f" "d")
(split-string "Soup is good food" "o+")
@result{} ("S" "up is g" "d f" "d")
@end example @end example
Empty matches do count, when not adjacent to another match: Empty matches do count, when not adjacent to another match:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment