从 Ansible 中的变量中提取子字符串
Extract a substring from a variable in Ansible
我想从 Ansible 中的一个变量中删除一个特定的子字符串,并将结果存储到另一个变量中。假设我有如下内容:
greeting: "Hello_World"
我想从 greeting 中删除子字符串 "_World" 并将结果存储在另一个 Ansible 变量中。
示例:
greet_word: "Hello"
提前致谢!
问:"删除子字符串'_World'"
A:使用regex_replace,例如
- set_fact:
greet_word: "{{ greeting|regex_replace('^(.*)_World(.*)$', '\1\2') }}"
给予
greet_word: Hello
也可以在下划线'_'处拆分字符串。下面的任务给出了相同的结果。它更简单,但只需要第一个元素。如果下划线分隔的元素较多,则使用第一个示例。
- set_fact:
greet_word: "{{ greeting.split('_').0 }}
你可以试试set_fact module and regular expressions
- name: Extract substring from a variable
set_fact:
new_variable: "{{ variable | regex_search() }}"
可以使用任何在线服务测试正则表达式,也可以使用 debug
检查您得到的结果
我想从 Ansible 中的一个变量中删除一个特定的子字符串,并将结果存储到另一个变量中。假设我有如下内容:
greeting: "Hello_World"
我想从 greeting 中删除子字符串 "_World" 并将结果存储在另一个 Ansible 变量中。
示例:
greet_word: "Hello"
提前致谢!
问:"删除子字符串'_World'"
A:使用regex_replace,例如
- set_fact:
greet_word: "{{ greeting|regex_replace('^(.*)_World(.*)$', '\1\2') }}"
给予
greet_word: Hello
也可以在下划线'_'处拆分字符串。下面的任务给出了相同的结果。它更简单,但只需要第一个元素。如果下划线分隔的元素较多,则使用第一个示例。
- set_fact:
greet_word: "{{ greeting.split('_').0 }}
你可以试试set_fact module and regular expressions
- name: Extract substring from a variable
set_fact:
new_variable: "{{ variable | regex_search() }}"
可以使用任何在线服务测试正则表达式,也可以使用 debug
检查您得到的结果