Jinja2模板中的子串

Mos*_*she 18 substring jinja2 ansible

使用ansible进行部署时,我需要删除一个尾随-p子字符串的特定情况.

该字符串somemachine-prod-p应该成为somemachine-prod只有在-p很底.

我看到我可以使用Jinja的子串函数不能满足我的需要,因为我需要去除字符串的结尾,而不是开头.

想法?

Mos*_*she 43

找到了.

如果有人想知道:

{% if name.endswith('-p') %}
{{ name[:-2] }}
{% else %}
{{ name }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

  • 我知道这是一个旧帖子,但只是想说这对今天下午有很大帮助。感谢分享。 (5认同)
  • 很高兴添加简单的 Python 字符串函数可以在 jinja 中使用(在您的解决方案中,这不是内置的 jinja 测试)。 (2认同)

Kon*_*rov 21

有一个更好的"oneliner": {{ name | regex_replace('-p$','') }}.

  • 对以上评论表示抱歉。我刚刚意识到,这实际上是一个可靠的具体问题。我刚刚通过搜索 jinja2 来到这里。 (3认同)

Str*_*aff 9

对于简单的子字符串...

"{{var_name[start:end]}}"
Run Code Online (Sandbox Code Playgroud)

起始位置是起始位置(偏移量0),终止位置是结束位置(偏移量1)……似乎!

这个问题的标题表明,只是想从变量中获取子字符串。而且大多数其他搜索结果具有相似的标题,但会给出特定的响应,例如拆分路径等。这对于像我这样的人来说,很难找到这样的基本内容。