首页 > 解决方案 > 从 Ansible 中的变量中提取子字符串

问题描述

我想从 Ansible 中的变量中删除特定的子字符串并将结果存储到另一个变量中。假设我有如下内容:

greeting: "Hello_World"

我想从问候语中删除子字符串“_World”并将结果存储在另一个 Ansible 变量中。

例子: greet_word: "Hello"

提前致谢!

标签: ansibleansible-facts

解决方案


问:删除子字符串'_World'

答:使用regex_replace,例如

    - set_fact:
        greet_word: "{{ greeting|regex_replace('^(.*)_World(.*)$', '\\1\\2') }}"

  greet_word: Hello

也可以在下划线'_'上分割字符串。下面的任务给出了相同的结果。它更简单,但只需要第一个元素。如果有更多由下划线分隔的元素,请使用第一个示例。

    - set_fact:
        greet_word: "{{ greeting.split('_').0 }}

推荐阅读