gpt4 book ai didi

elixir - Elixir 中的字符串替换

转载 作者:行者123 更新时间:2023-12-05 08:23:14 27 4
gpt4 key购买 nike

我需要转换这个字符串

"/{foo}/{bar}.{format}"

"/#{a["foo"]}/#{a["bar"]}.#{a["format"]}"

因为我有一个包含这些属性的列表。例如

a["foo"] = "home"
a["bar"] = "picture"
a["format"] = "jpg"

我尝试这样的事情

String.replace(a,"{",~s(#{))

但是我得到了这个错误(

SyntaxError) iex:8: unexpected token: )

我什至尝试使用正则表达式来创建一个列表来尝试获得我的结果,但我不明白如何应用此正则表达式 ([^{]*?)\w(?=\})

最佳答案

假设您想要字符串 "/home/picture.jpg" 作为结果,您可以使用 Regex.replace/3 和一个函数作为替换:

map = %{
"foo" => "home",
"bar" => "picture",
"format" => "jpg",
}

string = "/{foo}/{bar}.{format}"

Regex.replace(~r/{([a-z]+)?}/, string, fn _, match ->
map[match]
end)
|> IO.inspect

输出:

"/home/picture.jpg"

关于elixir - Elixir 中的字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46687948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com