在 Elixir 中删除最后一个斜杠后的字符串

Remove string after last slash in Elixir

我在删除 Elixir 中 URL 最后一个斜线后的所有内容时遇到问题。例如,我有 URL:

http://localhost:4000/admins/new

我想把它改成:

http://localhost:4000/admins

我该怎么做?

你可以用正则表达式来完成:

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

输出:

"http://localhost:4000/admins"

最安全的方法可能是使用 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"