Удалить строку после последней косой черты в Elixir

#elixir #phoenix-framework

#elixir #phoenix-framework

Вопрос:

У меня проблема с удалением всего после последней косой черты URL в Elixir. Например, у меня есть URL:

http://localhost:4000/admins/new

Я хочу изменить ее на:

http://localhost:4000/admins

Как я могу это сделать?

Ответ №1:

Вероятно, самым безопасным способом было бы использовать URI.parse/1

 uri = URI.parse("http://localhost:4000/admins/new")

%URI{uri |
  path:
    uri.path
    |> String.split("/")
    |> Enum.slice(0..-2)
    |> Enum.join("/")
}
|> URI.to_string()

#⇒ "http://localhost:4000/admins"
  

Ответ №2:

Вы можете сделать это с помощью регулярного выражения:

 Regex.replace(~r{/[^/] $}, "http://localhost:4000/admins/new", "")
  

Вывод:

 "http://localhost:4000/admins"