[Libguestfs] [PATCH 0/2] Add lightweight bindings for PCRE.

Richard W.M. Jones rjones at redhat.com
Tue Aug 1 14:00:15 UTC 2017


We'd like to use PCRE instead of the awful Str module.  However I
don't necessarily want to pull in the extra dependency of ocaml-pcre,
and in any case ocaml-pcre is rather difficult to use.

This introduces very simplified and lightweight bindings for PCRE.

They work rather like Str in that there is some global state (actually
thread-local in this implementation) between the matching and the
getting the substring, so you can write code like this:

  let re = PCRE.compile "(a+)b"
  ...

  if PCRE.matches re "ccaaaabb" then (
    let whole = PCRE.sub 0 in (* returns "aaaab" *)
    let first = PCRE.sub 1 in (* returns "aaaa" *)
    ...

I also introduced the switch from Str -> PCRE in virt-builder to show
that it simplifies code while allowing you to use the much more
powerful PCRE regular expressions.

Rich.




More information about the Libguestfs mailing list