如何替换字符串中的多个字符?
我目前的策略是嵌套stdlib函数:
tst.jsonnet
local tst = '0-1.2';
{
tst: std.strReplace(std.strReplace(tst, '.', '_'), '-', '_'),
}产出:
> ./jsonnet tst.jsonnet
{
"tst": "0_1_2"
}我希望能够使用这个功能,比如:
std_name(tst, ['.', '-'], '_')发布于 2022-03-26 01:41:24
不幸的是,jsonnet 不支持regex (这将极大地帮助这个用例),但是您可以编写自己的实现std_name()的函数(我在下面的代码中将它命名为strReplaceMany() ):
local tst = '0-1.2';
// Loop over fromArray (of strings), running std.stdReplace()
local strReplaceMany(str, fromArray, to) = std.foldl(
function(retStr, from) std.strReplace(retStr, from, to),
fromArray,
str
);
{
tst: strReplaceMany(tst, ['.', '-'], '_'),
}https://stackoverflow.com/questions/71621639
复制相似问题