README.md

# Verbalex

[![Hex pm](http://img.shields.io/hexpm/v/verbalex.svg?style=flat)](https://hex.pm/packages/verbalex)

Verbalex is a library for creating complex regular expressions with the reader & writer in mind.
It does not aim to replace Elixir's already excellent [Regex](https://hexdocs.pm/elixir/Regex.html) module for operating on regex. Instead, it focuses only on building the `~r/regexes/` themselves.

```elixir
alias Verbalex, as: Vlx

protocols = ""
  |> Vlx.find("http")
  |> Vlx.maybe("s")
  |> Vlx.then("://")
  |> Vlx.capture_as("protocols")
  |> Regex.compile!()

# ~r/(?<protocols>(?:http)s?(?::\/\/))/

Regex.named_captures(protocols, "https://github.com/tylerbarker")
# %{"protocols" => "https://"}
```

## Installation

```elixir
def deps do
  [
    {:verbalex, "~> 0.3.0"}
  ]
end
```

## Docs

Documentation can be found at [https://hexdocs.pm/verbalex](https://hexdocs.pm/verbalex).

## Acknowledgements

Verbalex is essentially an Elixir port of the popular [Verbal Expressions](https://github.com/VerbalExpressions) family of libraries, while also taking some inspiration from [Simple Regex](https://simple-regex.com/).

Thanks to Max Szengal for laying down the groundwork in 2013 with [ElixirVerbalExpressions](https://github.com/VerbalExpressions/ElixirVerbalExpressions).

## Contributing

For issues, comments or feedback please first [create an issue](https://github.com/tylerbarker/verbalex/issues).