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

如何在Terraform中提取指定字符串的前两段内容?

Terraform提取字符串前两段的实现方法

你的问题出在两个地方:一是Terraform的列表索引从0开始,二是Terraform不支持用[1,2]这种逗号分隔的方式同时取多个列表元素。

正确的实现可以通过split+slice+join三个函数组合完成:

# 直接针对示例字符串的写法
join(":", slice(split(":", "sg:dev:crm"), 0, 2))

分步解释:

  1. split(":", "sg:dev:crm") 将字符串按冒号拆分,得到列表 ["sg", "dev", "crm"]
  2. slice(..., 0, 2) 截取列表的前2个元素(左闭右开规则,取索引0和1),得到 ["sg", "dev"]
  3. join(":", ...) 将截取后的列表用冒号拼接,最终得到 "sg:dev"

如果这个字符串来自YAML变量(假设变量名为var.your_yaml_string),只需替换示例字符串为变量:

join(":", slice(split(":", var.your_yaml_string), 0, 2))

另外也可以用正则匹配的方式,适合明确知道字符串格式的场景:

regex("^([^:]+:[^:]+)", "sg:dev:crm").0

不过slice+join的写法更通用,哪怕字符串段数后续变化,只要取前两段都能生效。

内容的提问来源于stack exchange,提问作者Felixrobin antony

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:01:18