document improved splitting with empty matches

svn: r12581
This commit is contained in:
Eli Barzilay 2008-11-24 23:42:20 +00:00
parent f40ae63f45
commit e2c5c973fc

View File

@ -312,10 +312,13 @@ byte strings corresponding to a sequence of matches of
results for parenthesized sub-patterns in @scheme[pattern] are not results for parenthesized sub-patterns in @scheme[pattern] are not
returned.) returned.)
If @scheme[pattern] matches a zero-length string or byte sequence, and The @scheme[pattern] is used in order to find matches, where each
if it is at the beginning or end of the input, then the match does not match attempt starts at the end of the last match. Empty matches are
count. Otherwise, one character or byte in the input is skipped before handled like any matches, returning a zero-length string or byte
attempting another match. sequence (they are more useful in the complementing
@scheme[regexp-split] function). However, the @scheme[pattern] is
restricted from matching an empty string at the beginning (or right
after a previous match) or at the end.
If @scheme[input] contains no matches (in the range @scheme[start-pos] If @scheme[input] contains no matches (in the range @scheme[start-pos]
to @scheme[end-pos]), @scheme[null] is returned. Otherwise, each item to @scheme[end-pos]), @scheme[null] is returned. Otherwise, each item
@ -525,7 +528,7 @@ strings (if @scheme[pattern] is a string or character regexp and
@scheme[input] that are separated by matches to @scheme[input] that are separated by matches to
@scheme[pattern]. Adjacent matches are separated with @scheme[""] or @scheme[pattern]. Adjacent matches are separated with @scheme[""] or
@scheme[#""]. Zero-length matches are treated the same as in @scheme[#""]. Zero-length matches are treated the same as in
@scheme[regexp-match*]. @scheme[regexp-match*], but are more useful in this case.
If @scheme[input] contains no matches (in the range @scheme[start-pos] If @scheme[input] contains no matches (in the range @scheme[start-pos]
to @scheme[end-pos]), the result is a list containing @scheme[input]'s to @scheme[end-pos]), the result is a list containing @scheme[input]'s
@ -539,8 +542,11 @@ case splitting goes to the end of @scheme[input] (which corresponds to
an end-of-file if @scheme[input] is an input port). an end-of-file if @scheme[input] is an input port).
@examples[ @examples[
(regexp-split #rx"x" "12x4x6") (regexp-split #rx" +" "12 34")
(regexp-split #rx"." "12x4x6") (regexp-split #rx"." "12 34")
(regexp-split #rx"" "12 34")
(regexp-split #rx" *" "12 34")
(regexp-split #px"\\b" "12, 13 and 14.")
]} ]}
@;------------------------------------------------------------------------ @;------------------------------------------------------------------------