package ppx_mikmatch

  1. Overview
  2. No Docs
Matching Regular Expressions with OCaml Patterns using Mikmatch's syntax

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.2.tar.gz
md5=607d525df297c70ec7104d7188d2aa5b
sha512=1f1da92620be9dbf1c7530c7d0bfc92bb736f4189ef97285b24b90bbb8ce24aaa0aa001c268a4029458def31dc972e813d163092caee5dc784f96380f9125618

Description

This syntax extension turns

match%mikmatch x with
| {| re1 |} -> e1
...
| {| reN |} -> eN
| _ -> e0

into suitable invocations to the ocaml-re library. The patterns are plain strings of the form accepted by Re_pcre, except groups can be bound to variables using the syntax (... as var). The type of var will be string if a match is of the groups is guaranteed given a match of the whole pattern, and string option if the variable is bound to or nested below an optionally matched group.

Additional extensions:

  • let%mikmatch name = {|re|} defines reusable patterns for use within (?U/N<name>) patterns
  • type name = {%mikmatch| re |} generates record types with parse/pp functions from patterns
  • let destructuring via let%pcre/mikmatch {| regex |} = s, where regex binds values and s is the input string
  • /regex/flags for providing compiler flags. i for caseless, a (%pcre) anchored, u (%mikmatch) unanchored
  • Caseless groups via the ~ operator
  • Mixed matching (raw strings supported) via function | {%mikmatch| ... |} -> ... | "raw string" -> ...
  • Matching guards are supported across all match extensions

Published: 27 Feb 2026

Dependencies (5)

  1. menhir >= "20240715"
  2. re >= "1.7.2"
  3. ppxlib >= "0.36.0"
  4. dune >= "1.11"
  5. ocaml >= "4.10"

Dev Dependencies (1)

  1. ounit2 with-test

Used by

None

Conflicts

None