You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ansible Jinja模板中将字符串下划线(_)转为连字符(-)

在Ansible Jinja模板中转换下划线为连字符的解决方案

嘿,针对你要把example_test_password转换成test-password的需求,这里有两个简单好用的方法:

方法1:利用字符串分割与切片拼接

Jinja2支持对字符串进行分割操作,我们可以先把原字符串按下划线分割成列表,然后取最后两个元素,再用连字符拼接起来:

{{ "example_test_password" | split('_')[-2:] | join('-') }}

逻辑拆解:

  • split('_'):把字符串拆成['example', 'test', 'password']
  • [-2:]:取列表的最后两个元素,得到['test', 'password']
  • join('-'):用连字符把这两个元素拼接成test-password

方法2:使用正则表达式替换

如果更习惯用正则,也可以通过匹配最后两段下划线分隔的内容来替换:

{{ "example_test_password" | regex_replace('.*_(.*)_(.*)', '\\1-\\2') }}

逻辑拆解:

  • .*_(.*)_(.*):匹配任意字符直到倒数第二个下划线,然后捕获后面的两段内容(test和password)
  • \\1-\\2:把捕获的两组内容用连字符连接起来

这两种方法都能完美实现你的需求,你可以根据自己的习惯选择~

内容的提问来源于stack exchange,提问作者Muhammed Roshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:34:18