Module Regexp

module Regexp : sig..end

Types for regexps.


Warning: the regexp syntax is the javascript one. It differs from the syntax used by the Str module from the OCaml standard library.

type regexp

The type for regexps.

type result

The type for match result.

Constructors

val regexp : string -> regexp

Simple regexp constructor.

val regexp_case_fold : string -> regexp

Same as regexp but matching will be performed in a case insensitive way.

val regexp_with_flag : string -> string -> regexp

Regexp constructor with flag that allow for case-insensitive search or multiline search (the global flag is always set).

val quote : string -> string

Escapes characters with special meaning in the regexp context.

val regexp_string : string -> regexp

regexp_string s creates a regexp matching the exact string s.

val regexp_string_case_fold : string -> regexp

Same as regexp_string but matching will be performed in a case insensitive way.

Functions

val string_match : regexp -> string -> int -> result option

string_match r s i matches the string s starting from the ith character. Evaluates to None if s (from the ith character) doesn't match r.

val search : regexp -> string -> int -> (int * result) option

search r s i evaluates to the index of the match and the match result or None if s (starting from i) doesn't match r.

val search_forward : regexp -> string -> int -> (int * result) option

Same as search.

val matched_string : result -> string

matched_string r return the exact substring that matched when evaluating r.

val matched_group : result -> int -> string option

matched_group r i is the ith group matched. Groups in matches are * obtained with parentheses. Groups are 1-based.

val global_replace : regexp -> string -> string -> string

global_replace r s by replaces all of the matches of r in s by by.

val replace_first : regexp -> string -> string -> string

replace_first r s by replaces the first match of r in s by by.

val split : regexp -> string -> string list

split r s splits the string s erasing matches with r. split (regexp " ") "toto tutu tata" is ["toto";"tutu";"tata"].

val bounded_split : regexp -> string -> int -> string list

bounded_split r s i is like split r s except that the result's length is less than i.