include Core.StringThis module extends Base.String.
include sig ... endval bin_t : t Bin_prot.Type_class.tval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (int ‑> t) Bin_prot.Read.readerval bin_reader_t : t Bin_prot.Type_class.readerval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_writer_t : t Bin_prot.Type_class.writerval bin_shape_t : Bin_prot.Shape.tval typerep_of_t : t Typerep_lib.Std.Typerep.tval typename_of_t : t Typerep_lib.Std.Typename.tmodule Caseless = Core_kernel.String.Caselessinclude module type of sig ... end with type t := t with module Caseless := Base.String.Caselessmodule Caseless = Base__String.Caselessval unsafe_blit : (t, bytes) Base.Blit.blitval sub : (t, t) Base.Blit.subval subo : (t, t) Base.Blit.suboval fold_result : t ‑> init:'accum ‑> f:('accum ‑> elt ‑> ('accum, 'e) Base.Result.t) ‑> ('accum, 'e) Base.Result.tval fold_until : t ‑> init:'accum ‑> f:('accum ‑> elt ‑> ('accum, 'final) Base__.Container_intf.Continue_or_stop.t) ‑> finish:('accum ‑> 'final) ‑> 'finalval sum : (module Base.Commutative_group.S with type t = 'sum) ‑> t ‑> f:(elt ‑> 'sum) ‑> 'sumval hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.stateval t_of_sexp : Base.Sexp.t ‑> tval sexp_of_t : t ‑> Base.Sexp.tval of_string : string ‑> tval to_string : t ‑> stringval clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.tval comparator : (t, comparator_witness) Base.Comparator.comparatorval validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.checkval pp : Base.Formatter.t ‑> t ‑> unitexternal length : t ‑> int = "%string_length" external get : t ‑> int ‑> char = "%string_safe_get" val make : int ‑> char ‑> tval init : int ‑> f:(int ‑> char) ‑> tval fill : bytes ‑> pos:int ‑> len:int ‑> char ‑> unitval contains : ?pos:int ‑> ?len:int ‑> t ‑> char ‑> boolval index : t ‑> char ‑> int optionval index_exn : t ‑> char ‑> intval rindex : t ‑> char ‑> int optionval rindex_exn : t ‑> char ‑> intval index_from : t ‑> int ‑> char ‑> int optionval index_from_exn : t ‑> int ‑> char ‑> intval rindex_from : t ‑> int ‑> char ‑> int optionval rindex_from_exn : t ‑> int ‑> char ‑> intval to_list_rev : t ‑> char listval lfindi : ?pos:int ‑> t ‑> f:(int ‑> char ‑> bool) ‑> int optionval rfindi : ?pos:int ‑> t ‑> f:(int ‑> char ‑> bool) ‑> int optionval foldi : t ‑> init:'a ‑> f:(int ‑> 'a ‑> char ‑> 'a) ‑> 'aval tr_inplace : target:char ‑> replacement:char ‑> bytes ‑> unitexternal hash : t ‑> int = "Base_hash_string" val is_empty : t ‑> boolval of_char : char ‑> tval of_char_list : char list ‑> tmodule Escaping = Base__String.Escapingslice t start stop returns a new string including elements t.(start) through
t.(stop-1), normalized Python-style with the exception that stop = 0 is treated as
stop = length t.
take_while s ~f returns the longest prefix of s satisfying for_all prefix ~f
(See lstrip to drop such a prefix)
rtake_while s ~f returns the longest suffix of s satisfying for_all suffix ~f
(See rstrip to drop such a suffix)
include Core_kernel.Identifiable.S with type t := t and type comparator_witness := comparator_witnessinclude sig ... endval bin_t : t Bin_prot.Type_class.tval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (Core_kernel__.Import.int ‑> t) Bin_prot.Read.readerval bin_reader_t : t Bin_prot.Type_class.readerval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_writer_t : t Bin_prot.Type_class.writerval bin_shape_t : Bin_prot.Shape.tval hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.stateval hash : t ‑> Base.Hash.hash_valueval t_of_sexp : Base.Sexp.t ‑> tval sexp_of_t : t ‑> Base.Sexp.tinclude Core_kernel.Identifiable.S_common with type t := tinclude sig ... endval compare : t ‑> t ‑> Core_kernel__.Import.intval hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.stateval hash : t ‑> Base.Hash.hash_valueval sexp_of_t : t ‑> Base.Sexp.tinclude Core_kernel__.Import.Stringable.S with type t := tval of_string : string ‑> tval to_string : t ‑> stringinclude Core_kernel__.Import.Pretty_printer.S with type t := tval pp : Base.Formatter.t ‑> t ‑> unitinclude Core_kernel.Comparable.S_binable with type t := tinclude Core_kernel__.Comparable_intf.S_commoninclude Base.Comparable.Sinclude Base__.Comparable_intf.Polymorphic_compareascending is identical to compare. descending x y = ascending y x. These are
intended to be mnemonic when used like List.sort ~compare:ascending and List.sort
~cmp:descending, since they cause the list to be sorted in ascending or descending
order, respectively.
clamp_exn t ~min ~max returns t', the closest value to t such that
between t' ~low:min ~high:max is true.
Raises if not (min <= max).
val clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.tinclude Base.Comparator.S with type t := tval comparator : (t, comparator_witness) Base.Comparator.comparatorinclude Base__.Comparable_intf.Validate with type t := tval validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.checkmodule Replace_polymorphic_compare : Core_kernel__.Comparable_intf.Polymorphic_compare with type t := tinclude Core_kernel__.Comparable_intf.Map_and_set_binable with type t := t with type comparator_witness := comparator_witnessinclude Core_kernel.Comparator.S with type t := tval comparator : (t, comparator_witness) Core_kernel.Comparator.comparatormodule Map : Core_kernel.Map.S_binable with type Key.t = t with type Key.comparator_witness = comparator_witnessmodule Set : Core_kernel.Set.S_binable with type Elt.t = t with type Elt.comparator_witness = comparator_witnessinclude Core_kernel.Hashable.S_binable with type t := tinclude sig ... endval hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.stateval hash : t ‑> Base.Hash.hash_valueval hashable : t Core_kernel.Hashtbl.Hashable.tmodule Table : Core_kernel.Hashtbl.S_binable with type key = tmodule Hash_set : Core_kernel.Hash_set.S_binable with type elt = tmodule Hash_queue : Core_kernel.Hash_queue.S with type Key.t = tval gen' : char Core_kernel.Quickcheck.Generator.t ‑> t Core_kernel.Quickcheck.Generator.tLike gen, but generate strings with the given distribution of characters.
val gen_with_length : int ‑> char Core_kernel.Quickcheck.Generator.t ‑> t Core_kernel.Quickcheck.Generator.tLike gen', but generate strings with the given length.
module Stable = Core_kernel.String.StableNote that string is already stable by itself, since as a primitive type it is an
integral part of the sexp / bin_io protocol. String.Stable exists only to introduce
String.Stable.Set and String.Stable.Map, and provide interface uniformity with
other stable types.
include Extended_stringExtensions to Core.Core_String.
val collate : string ‑> string ‑> intcollate s1 s2 sorts string in an order that's usaully more suited for human
consumption by treating ints specially, e.g. it will output:
["rfc1.txt";"rfc822.txt";"rfc2086.txt"].
It works by splitting the strings in numerical and non-numerical chunks and comparing chunks two by two from left to right (and starting on a non numerical chunk):
It is a total order.
val unescaped : ?strict:bool ‑> string ‑> stringunescaped s is the inverse operation of escaped: it takes a string where
all the special characters are escaped following the lexical convention of
OCaml and returns an unescaped copy.
The strict switch is on by default and makes the function treat illegal
backslashes as errors.
When strict is false every illegal backslash except escaped numeral
greater than 255 is copied literally. The aforementioned numerals still
raise errors. This mimics the behaviour of the ocaml lexer.
val unescaped_res : ?strict:bool ‑> string ‑> (string, int * string) Core.Result.tSame as unescaped but instead of raising Failure _ returns an error
message with the position in the string in case of failure.
val squeeze : string ‑> stringsqueeze str reduces all sequences of spaces, newlines, tables, and
* carriage returns to single spaces.
val is_substring_deprecated : substring:string ‑> string ‑> boolUse Core.String.is_substring instead of this function. This wrapper is here (for now) to maintain bug compatibility.
val pad_left : ?char:char ‑> string ‑> int ‑> stringpad_left ~char s len
Returns s padded to the length len by adding characters char to the
left of the string. If s is already longer than len it is returned unchanged.
val word_wrap : ?trailing_nl:bool ‑> ?soft_limit:int ‑> ?hard_limit:int ‑> ?nl:string ‑> string ‑> stringword_wrap ~soft_limit s
Wraps the string so that it fits the length soft_limit. It doesn't break
words unless we go over hard_limit.
if nl is passed it is inserted instead of the normal newline character.
val edit_distance : ?transpose:unit ‑> string ‑> string ‑> intGives the Levenshtein distance between 2 strings, which is the number of insertions,
deletions, and substitutions necessary to turn either string into the other. With the
transpose argument, it alsos considers transpositions (Damerau-Levenshtein
distance).