zeroreg

Write regex without the tears or confusion.

zeroreg is a Gleam port of zeroreg-go: a small, readable regex builder with pre-built patterns for common validation tasks.

Status

This package currently targets Erlang/OTP because the runtime helpers use Erlang’s re module.

Installation

gleam add zeroreg

Usage

import zeroreg

pub fn phone() {
  let phone_pattern =
    zeroreg.optional_str("+")
    |> zeroreg.then(zeroreg.digit(3))
    |> zeroreg.then_str("-")
    |> zeroreg.then(zeroreg.digit(3))
    |> zeroreg.then_str("-")
    |> zeroreg.then(zeroreg.digit(4))

  zeroreg.matches(phone_pattern, "+123-456-7890")
}

You can also use the built-in patterns:

import zeroreg/patterns

pub fn valid_email(input: String) -> Bool {
  patterns.email()
  |> patterns.matches(input)
}

Builder API

Character classes:

Composition:

Quantifiers:

Anchors and escapes:

Runtime helpers:

Pre-built Patterns

The zeroreg/patterns module includes:

And strong_password(input) as a helper function.

Search Document