首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsonnet中的多字符替换函数

jsonnet中的多字符替换函数
EN

Stack Overflow用户
提问于 2022-03-25 18:34:45
回答 1查看 123关注 0票数 1

如何替换字符串中的多个字符?

我目前的策略是嵌套stdlib函数:

tst.jsonnet

代码语言:javascript
复制
local tst = '0-1.2';

{
  tst: std.strReplace(std.strReplace(tst, '.', '_'), '-', '_'),
}

产出:

代码语言:javascript
复制
> ./jsonnet tst.jsonnet
{
   "tst": "0_1_2"
}

我希望能够使用这个功能,比如:

代码语言:javascript
复制
std_name(tst, ['.', '-'], '_')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-26 01:41:24

不幸的是,jsonnet 不支持regex (这将极大地帮助这个用例),但是您可以编写自己的实现std_name()的函数(我在下面的代码中将它命名为strReplaceMany() ):

代码语言:javascript
复制
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, ['.', '-'], '_'),
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71621639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档