Ansible 删除字符串中的最后一个字符(如果它是数字)

标签 ansible jinja2

我有一个如下所示的列表

fruit: [ 'apple','orange2','grape3apple1']

我想要如下所示的输出,并希望将其存储在另一个变量中以供进一步使用

fruit_out: [ 'apple','orange','grape3apple' ]

如果最后一个字符是数字,我希望删除该数字,如果不是,我需要按原样返回字符串。我环顾四周,没有找到任何可用的解决方案。

最佳答案

重申我对上下文的评论:

给定一个字符串变量 somevariablesomevariable[-1] 是最后一个字符,somevariable[:-1] 是字符串不包括最后一个字符。 –

I am looking for a validation to check if the last character is indeed a number. If there is a number at in the middle it should not count for the check

Ansible 使用 Python,因此您可以使用任何 Python string method在您的 Ansible 剧本中。例如,要在值以数字结尾时执行任务,您可以编写:

- debug:
    msg: Your variable ends with a number!
  when: somevariable[-1].isdigit()

您可以使用正则表达式过滤器执行相同的检查:

- debug:
    msg: Your variable ends with a number!
  when: somevariable is search('[0-9]$')

关于Ansible 删除字符串中的最后一个字符(如果它是数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72523552/

相关文章:

ansible - 检查 Windows 上是否安装了 MSI 包

dictionary - 如何从 Ansible 字典中删除单个键?

linux - 如何获取远程主机的环境变量

Ansible 通过 VPN 连接跳机?

unix - Ansible命令来检查不同服务器中的Java版本

python - jinja2 模板中字典的格式化和使用

css - Jinja 可以用于 CSS 模板吗

python - 在 Tornado 模板中通过 StringIO/BytesIO 动态提供图像

python - 如何在 jinja2 中获取 WTForms 验证器

python - Jinja2模板,去掉回车