Go Template按倒数第二个分隔符拆分字符串的实现问题
解决Helm模板中按倒数第二个分隔符拆分字符串的问题
针对你需求的固定格式字符串(含4个"-"),正确的Helm模板写法应该先把拆分结果存为变量,再截取前三个元素拼接:
{{- $splitResult := splitList "-" .Values.global.stackName -}} {{- printf "%q" (join "-" (slice $splitResult 0 3)) -}}
为啥之前的写法失效?
你之前直接用list ._0 ._1 ._2是错误的——splitList返回的是数组,Helm模板里没法用._0这种方式直接访问数组元素,必须先把拆分结果存到变量里,再用索引或者slice函数取值。
代码细节说明
splitList "-"将目标字符串按"-"拆分成数组,存入变量$splitResultslice $splitResult 0 3截取数组的前3个元素(对应原字符串中倒数第二个"-"之前的部分)join "-"把截取到的元素重新用"-"拼接成字符串printf "%q"给最终结果加上引号,和你最初的需求一致
内容的提问来源于stack exchange,提问作者Arnau Amargant Domene
相关产品推荐
相关产品推荐

