Обработка текста часто является частью компьютерных систем. Иногда бывает полезно проверить регулярные выражения.

В Elixir регулярные выражения могут извлекать много полезной информации. Также можно использовать имена. Благодаря этому вам не нужно беспокоиться о порядке совпадений. Это может быть полезно для проверки данных и дальнейшего использования данных в системе.

Пример использования Regex в вашем коде:

iex(1)> Regex.named_captures(~r/a(?<name>b)c(?<order>d)/, "abcd")
%{"name" => "b", "order" => "d"}

iex(2)> Regex.named_captures(~r/a(?<name>b)c(?<order>d)/, "abcd", return: :binary)
%{"name" => "b", "order" => "d"}

iex(3)> Regex.named_captures(~r/a(?<name>b)c(?<order>d)/, "abcd", return: :index)
%{"name" => {1, 1}, "order" => {3, 1}}

Использование Regex.named_captures/3 позволяет нам анализировать входные данные на основе подготовленного регулярного выражения. По умолчанию результатом будет соответствующий текст (по умолчанию return: :binary). Однако, указав :index, мы можем ограничиться проверкой успешности сопоставления выражения, получением начальной позиции и совпадающей длины.

Первоначально опубликовано на https://bartoszgorka.com 16 ноября 2022 г.