Up — package containers Basic String Utils type 'a gen
= unit ‑> 'a option
type 'a sequence
= ('a ‑> unit) ‑> unit
type 'a klist
= unit ‑> [ `Nil | `Cons of 'a * 'a klist ]
Common Signature module type S : sig ... end
Strings
include module type of sig ... end
external length : string ‑> int = "%string_length"
external get : string ‑> int ‑> char = "%string_safe_get"
external set : bytes ‑> int ‑> char ‑> unit = "%string_safe_set"
Deprecated Use Bytes.set instead.external create : int ‑> bytes = "caml_create_string"
Deprecated Use Bytes.create instead.val make : int ‑> char ‑> string
val init : int ‑> (int ‑> char) ‑> string
val copy : string ‑> string
val sub : string ‑> int ‑> int ‑> string
val fill : bytes ‑> int ‑> int ‑> char ‑> unit
Deprecated Use Bytes.fill instead.val blit : string ‑> int ‑> bytes ‑> int ‑> int ‑> unit
val concat : string ‑> string list ‑> string
val iter : (char ‑> unit) ‑> string ‑> unit
val iteri : (int ‑> char ‑> unit) ‑> string ‑> unit
val map : (char ‑> char) ‑> string ‑> string
val mapi : (int ‑> char ‑> char) ‑> string ‑> string
val trim : string ‑> string
val escaped : string ‑> string
val index : string ‑> char ‑> int
val index_opt : string ‑> char ‑> int option
val rindex : string ‑> char ‑> int
val rindex_opt : string ‑> char ‑> int option
val index_from : string ‑> int ‑> char ‑> int
val index_from_opt : string ‑> int ‑> char ‑> int option
val rindex_from : string ‑> int ‑> char ‑> int
val rindex_from_opt : string ‑> int ‑> char ‑> int option
val contains : string ‑> char ‑> bool
val contains_from : string ‑> int ‑> char ‑> bool
val rcontains_from : string ‑> int ‑> char ‑> bool
val uppercase : string ‑> string
Deprecated Use String.uppercase_ascii instead.val lowercase : string ‑> string
Deprecated Use String.lowercase_ascii instead.val capitalize : string ‑> string
Deprecated Use String.capitalize_ascii instead.val uncapitalize : string ‑> string
Deprecated Use String.uncapitalize_ascii instead.val uppercase_ascii : string ‑> string
val lowercase_ascii : string ‑> string
val capitalize_ascii : string ‑> string
val uncapitalize_ascii : string ‑> string
val compare : t ‑> t ‑> int
val equal : t ‑> t ‑> bool
val split_on_char : char ‑> string ‑> string list
external unsafe_get : string ‑> int ‑> char = "%string_unsafe_get"
external unsafe_set : bytes ‑> int ‑> char ‑> unit = "%string_unsafe_set"
external unsafe_blit : string ‑> int ‑> bytes ‑> int ‑> int ‑> unit = "caml_blit_string"
external unsafe_fill : bytes ‑> int ‑> int ‑> char ‑> unit = "caml_fill_string"
val equal : string ‑> string ‑> bool
Equality function on strings.
val compare : string ‑> string ‑> int
val is_empty : string ‑> bool
is_empty s
returns true
iff s
is empty (i.e. its length is 0).
val init : int ‑> (int ‑> char) ‑> string
val rev : string ‑> string
rev s
returns the reverse of s
.
val pad : ?side:[ `Left | `Right ] ‑> ?c:char ‑> int ‑> string ‑> string
pad n str
ensures that str
is at least n
bytes long,
and pads it on the side
with c
if it's not the case.
Parameter side : determines where padding occurs (default: `Left
).Parameter c : the char used to pad (default: ' ').Since : 0.17val of_char : char ‑> string
val of_gen : char gen ‑> string
Convert a gen
of characters to a string.
Convert a sequence
of characters to a string.
val of_klist : char klist ‑> string
Convert a klist
of characters to a string.
val of_list : char list ‑> string
Convert a list of characters to a string.
val of_array : char array ‑> string
Convert an array of characters to a string.
val to_array : string ‑> char array
Return the array of characters contained in the string.
val find : ?start:int ‑> sub:string ‑> string ‑> int
Find sub
in string, returns its first index or -1
.
val find_all : ?start:int ‑> sub:string ‑> string ‑> int gen
find_all ~sub s
finds all occurrences of sub
in s
, even overlapping
instances.
Parameter start : starting position in s
.Since : 0.17val find_all_l : ?start:int ‑> sub:string ‑> string ‑> int list
find_all_l ~sub s
finds all occurrences of sub
in s
and returns
them in a list.
Parameter start : starting position in s
.Since : 0.17val mem : ?start:int ‑> sub:string ‑> string ‑> bool
mem ~sub s
is true
iff sub
is a substring of s
.
val rfind : sub:string ‑> string ‑> int
Find sub
in string from the right, returns its first index or -1
.
Should only be used with very small sub
.
val replace : ?which:[ `Left | `Right | `All ] ‑> sub:string ‑> by:string ‑> string ‑> string
replace ~sub ~by s
replaces some occurrences of sub
by by
in s
.
val is_sub : sub:string ‑> int ‑> string ‑> int ‑> len:int ‑> bool
is_sub ~sub i s j ~len
returns true
iff the substring of
sub
starting at position i
and of length len
is a substring
of s
starting at position j
.
val repeat : string ‑> int ‑> string
The same string, repeated n times.
val prefix : pre:string ‑> string ‑> bool
prefix ~pre s
returns true
iff pre
is a prefix of s
.
val suffix : suf:string ‑> string ‑> bool
suffix ~suf s
returns true
iff suf
is a suffix of s
.
val chop_prefix : pre:string ‑> string ‑> string option
chop_prefix ~pre s
removes pre
from s
if pre
really is a prefix
of s
, returns None
otherwise.
val chop_suffix : suf:string ‑> string ‑> string option
chop_suffix ~suf s
removes suf
from s
if suf
really is a suffix
of s
, returns None
otherwise.
val take : int ‑> string ‑> string
take n s
keeps only the n
first chars of s
.
val drop : int ‑> string ‑> string
drop n s
removes the n
first chars of s
.
val take_drop : int ‑> string ‑> string * string
take_drop n s = take n s, drop n s
.
val lines : string ‑> string list
lines s
returns a list of the lines of s
(splits along '\n').
val lines_gen : string ‑> string gen
lines_gen s
returns a generator of the lines of s
(splits along '\n').
val concat_gen : sep:string ‑> string gen ‑> string
concat_gen ~sep g
concatenates all strings of g
, separated with sep
.
val unlines : string list ‑> string
unlines l
concatenates all strings of l
, separated with '\n'.
val unlines_gen : string gen ‑> string
unlines_gen g
concatenates all strings of g
, separated with '\n'.
val set : string ‑> int ‑> char ‑> string
set s i c
creates a new string which is a copy of s
, except
for index i
, which becomes c
.
Raises Invalid_argument : if i
is an invalid index.Since : 0.12val iter : (char ‑> unit) ‑> string ‑> unit
val iteri : (int ‑> char ‑> unit) ‑> string ‑> unit
Iter on chars with their index.
val map : (char ‑> char) ‑> string ‑> string
val mapi : (int ‑> char ‑> char) ‑> string ‑> string
Map chars with their index.
val filter_map : (char ‑> char option) ‑> string ‑> string
filter_map f s
calls (f a0) (f a1) ... (f an)
where a0 ... an
are the characters of s.
It returns the string of characters ci
such as f ai = Some ci
(when f
returns None
,
the corresponding element of s
is discarded).
val filter : (char ‑> bool) ‑> string ‑> string
filter f s
discards characters not satisfying f
.
val flat_map : ?sep:string ‑> (char ‑> string) ‑> string ‑> string
Map each chars to a string, then concatenates them all.
Parameter sep : optional separator between each generated string.Since : 0.12val for_all : (char ‑> bool) ‑> string ‑> bool
val exists : (char ‑> bool) ‑> string ‑> bool
include S with type S .t := string
Return the length (number of characters) of the given string.
val blit : t ‑> int ‑> Bytes.t ‑> int ‑> int ‑> unit
Like String.blit .
Compatible with the -safe-string
option.
Raises Invalid_argument : if indices are not valid.val fold : ('a ‑> char ‑> 'a ) ‑> 'a ‑> t ‑> 'a
Fold on chars by increasing index.
Conversions val to_gen : t ‑> char gen
Return the gen
of characters contained in the string.
Return the sequence
of characters contained in the string.
val to_klist : t ‑> char klist
Return the klist
of characters contained in the string.
val to_list : t ‑> char list
Return the list of characters contained in the string.
val pp_buf : Buffer.t ‑> t ‑> unit
Renamed from pp
since 2.0.
val pp : Format.formatter ‑> t ‑> unit
Print the string within quotes.
Renamed from print
since 2.0.
val drop_while : (char ‑> bool) ‑> t ‑> t
drop_while f s
discards any characters starting from the left,
up to the first character c
not satisfying f c
.
val rdrop_while : (char ‑> bool) ‑> t ‑> t
rdrop_while f s
discards any characters starting from the right,
up to the first character c
not satisfying f c
.
Trim space on the left (see String.trim for more details).
Trim space on the right (see String.trim for more details).
Operations on 2 strings val map2 : (char ‑> char ‑> char) ‑> string ‑> string ‑> string
Map pairs of chars.
Raises Invalid_argument : if the strings have not the same length.Since : 0.12val iter2 : (char ‑> char ‑> unit) ‑> string ‑> string ‑> unit
Iterate on pairs of chars.
Raises Invalid_argument : if the strings have not the same length.Since : 0.12val iteri2 : (int ‑> char ‑> char ‑> unit) ‑> string ‑> string ‑> unit
Iterate on pairs of chars with their index.
Raises Invalid_argument : if the strings have not the same length.Since : 0.12val fold2 : ('a ‑> char ‑> char ‑> 'a ) ‑> 'a ‑> string ‑> string ‑> 'a
Fold on pairs of chars.
Raises Invalid_argument : if the strings have not the same length.Since : 0.12val for_all2 : (char ‑> char ‑> bool) ‑> string ‑> string ‑> bool
All pairs of chars respect the predicate?
Raises Invalid_argument : if the strings have not the same length.Since : 0.12val exists2 : (char ‑> char ‑> bool) ‑> string ‑> string ‑> bool
Exists a pair of chars?
Raises Invalid_argument : if the strings have not the same length.Since : 0.12Ascii functions Those functions are deprecated in String since 4.03, so we provide
a stable alias for them even in older versions.
val capitalize_ascii : string ‑> string
val uncapitalize_ascii : string ‑> string
val uppercase_ascii : string ‑> string
val lowercase_ascii : string ‑> string
val equal_caseless : string ‑> string ‑> bool
Comparison without respect to ascii lowercase.
Finding A relatively efficient algorithm for finding sub-strings.
module Find : sig ... end
Splitting module Split : sig ... end
val split_on_char : char ‑> string ‑> string list
Split the string along the given char.
val split : by:string ‑> string ‑> string list
Utils val compare_versions : string ‑> string ‑> int
compare_versions a b
compares version strings a
and b
,
considering that numbers are above text.
val compare_natural : string ‑> string ‑> int
Natural Sort Order, comparing chunks of digits as natural numbers.
https://en.wikipedia.org/wiki/Natural_sort_order
val edit_distance : string ‑> string ‑> int
Edition distance between two strings. This satisfies the classical
distance axioms: it is always positive, symmetric, and satisfies
the formula distance a b + distance b c >= distance a c
.
Slices A contiguous part of a string