在 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"
我在删除 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"