Warning: Reason support is experimental. We are looking for beta-tester and contributors.

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.


val regexp : string -> regexp

Simple regexp constructor.

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 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 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.