package re

  1. Overview
  2. Docs

References:

Example of how to use this module (to parse some IRC logs):

type msg =
  { time : string
  ; author : string
  ; content : string
  }

let re = Core.compile (Re_posix.re "([^:].*:[^:]*:[^:]{2})<.([^>]+)> (.+)$")

(* parse a line *)
let match_line line =
  try
    let substrings = Core.exec re line in
    let groups = Core.get_all substrings in
    (* groups can be obtained directly by index within [substrings] *)
    Some { time = groups.(1); author = groups.(2); content = groups.(3) }
  with
  | Not_found -> None (* regex didn't match *)
;;
exception Parse_error
exception Not_supported

Errors that can be raised during the parsing of the regular expression

type opt = [
  1. | `ICase
  2. | `NoSub
  3. | `Newline
]
val re : ?opts:opt list -> string -> (Re__.Ast.cset, [ `Cased | `Uncased ]) Re__.Ast.gen

Parsing of a Posix extended regular expression

val compile : (Re__.Ast.cset, [ `Cased | `Uncased ]) Re__.Ast.gen -> Re__.Compile.re

compile r is defined as Core.compile (Core.longest r)

val compile_pat : ?opts:opt list -> string -> Re__.Compile.re

compile_pat ?opts regex compiles the Posix extended regular expression regexp

OCaml

Innovation. Community. Security.