Module Ecaml.Regexp
A "regular expression", or "regexp" for short, is a pattern that denotes a (possibly infinite) set of strings.
(Info-goto-node "(elisp)Regular Expressions")
include Ecaml__.Import.Value.Subtype
type value
type t
= private value
We expose
private value
for free identity conversions when the value is nested in some covariant type, e.g.(symbols : Symbol.t list :> Value.t list)
rather thanList.map symbols ~f:Symbol.to_value
.
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val eq : t -> t -> bool
eq t1 t2 = Value.eq (to_value t1) (to_value t2)
, i.e.eq
checks whether the Emacs values underlyingt1
andt2
are physically equal. This is different thanphys_equal t1 t2
, because we don't always wrapeq
Emacs values inphys_equal
OCaml values. I.e.phys_equal t1 t2
implieseq t1 t2
, but not the converse.
val is_in_subtype : value -> bool
include Ecaml_value__.Valueable0.S with type t := t
val of_value_exn : Ecaml_value__.Value0.t -> t
val to_value : t -> Ecaml_value__.Value0.t
val type_ : t type_
val t : t type_
val of_rx : Rx.t -> t
Rx.t
is the preferred way to construct regexps, especially when the alternative involves string manipulation in OCaml.
val match_anything : t
val match_nothing : t
val of_pattern : string -> t
(Info-goto-node "(elisp)Syntax of Regexps")
val to_pattern : t -> string
val any : t list -> t
val any_pattern : string list -> t
val quote : string -> t
quote string
matchesstring
and nothing else.(describe-function 'regexp-quote)
(Info-goto-node "(elisp)Regexp Functions")
val any_quote : string list -> t
any_quote strings
matches every string instrings
, and nothing else.(describe-function 'regexp-opt)
(Info-goto-node "(elisp)Regexp Functions")
module Last_match : sig ... end
Supplying
~update_last_match:true
to a searching function causes Emacs to keep track of the "last match", i.e. the start and end positions of the segments of text found during the search. One can access parts of the last match via theLast_match
functions.subexp
is one based.(Info-goto-node "(elisp)Match Data")
val match_ : ?start:int -> ?update_last_match:bool -> t -> Text.t -> int option
match_ t text
finds the first match oft
intext
, returns the index of the start of the match.(describe-function 'string-match)
(describe-function 'string-match-p)
(Info-goto-node "(elisp)Regexp Search")
val does_match : ?start:int -> ?update_last_match:bool -> t -> Text.t -> bool
does_match t text
isis_some (match_ t text)
val extract : ?start:int -> ?subexp:int -> t -> Text.t -> string option
val extract_string : ?start:int -> ?subexp:int -> t -> string -> string option
val replace : t -> with_:Text.t -> in_:Text.t -> Text.t
(describe-function 'replace-regexp-in-string)
val replace_string : t -> with_:string -> in_:string -> string
val save_match_data : (_, 'a) Sync_or_async.t -> (unit -> 'a) -> 'a
(describe-function 'save-match-data)