Module CCString.Split
type drop_if_empty
=
{
first : bool;
last : bool;
}
Specification of what to do with empty blocks, as in
split ~by:"-" "-a-b-"
.{first=false; last=false}
will return""; "a"; "b"; ""
{first=true; last=false}
will return"a"; "b" ""
{first=false; last=true}
will return""; "a"; "b"
{first=true; last=true}
will return"a"; "b"
The default value of all remaining functions is
Drop_none
.- since
- 1.5
val no_drop : drop_if_empty
Do not drop any group, even empty and on borders.
- since
- 1.5
val list_ : ?drop:drop_if_empty -> by:string -> string -> (string * int * int) list
Split the given string along the given separator
by
. Should only be used with very small separators, otherwise useContainers_string
.KMP.- returns
a list of slices
(s,index,length)
that are separated byby
.String
.sub can then be used to actually extract a string from the slice.
- raises Failure
if
by = ""
.
val gen : ?drop:drop_if_empty -> by:string -> string -> (string * int * int) gen
val iter : ?drop:drop_if_empty -> by:string -> string -> (string * int * int) iter
- since
- 2.8
val seq : ?drop:drop_if_empty -> by:string -> string -> (string * int * int) Stdlib.Seq.t
Renamed from
std_seq
since 3.0.- since
- 3.0
Copying functions
Those split functions actually copy the substrings, which can be more convenient but less efficient in general.
val list_cpy : ?drop:drop_if_empty -> by:string -> string -> string list
val gen_cpy : ?drop:drop_if_empty -> by:string -> string -> string gen
val iter_cpy : ?drop:drop_if_empty -> by:string -> string -> string iter
- since
- 2.8
val seq_cpy : ?drop:drop_if_empty -> by:string -> string -> string Stdlib.Seq.t
Renamed from
std_seq_cpy
since 3.0.- since
- 3.0
val left : by:string -> string -> (string * string) option
Split on the first occurrence of
by
from the leftmost part of the string.- since
- 0.12
val left_exn : by:string -> string -> string * string
Split on the first occurrence of
by
from the leftmost part of the string.- raises Not_found
if
by
is not part of the string.
- since
- 0.16