Обработка текста часто является частью компьютерных систем. Иногда бывает полезно проверить регулярные выражения.
В 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 г.