Skip to content

Elixir library for writing readable regexes in functional style

License

Notifications You must be signed in to change notification settings

orsinium-labs/re

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Re

Elixir library for writing regular expressions in functional style.

Features:

  • Readable and human-friendly.
  • Less error-prone.
  • 100% compile-time, no overhead in runtime.
  • But will fallback to runtime if needed (if you use dynamic content like variables).
  • Well documented with lots of examples.
  • Optimized and readable output.

Installation

The package can be installed by adding re to your list of dependencies in mix.exs:

def deps do
  [
    {:re, ">= 1.0.0"}
  ]
end

Usage

iex> require Re
iex> require Re.Chars
iex> regex =
...>   Re.sequence([
...>     Re.one_or_more(Re.any_of([Re.Chars.any_ascii, Re.any_of('.-_')])),
...>     Re.text(".example.com")
...>   ]) |> Re.compile()
~r/(?:[\\0-\x7f]|\.|\-|_)+\.example\.com/
iex> "hello.example.com" =~ regex
true

Documentation: hexdocs.pm/re/