可以使用Ansible的字符串过滤器来从列表项中获取子字符串。下面是一个示例代码:
- hosts: localhost
vars:
my_list:
- item1: "abcdefg"
- item2: "hijklmn"
- item3: "opqrst"
tasks:
- name: Get substring from list item
debug:
msg: "{{ item | regex_search('^[a-z]{3}') }}"
loop: "{{ my_list }}"
在这个示例中,我们定义了一个名为my_list
的列表,其中包含三个字符串。然后,我们使用regex_search
过滤器从每个列表项中提取以小写字母开头且长度为3的子字符串。
运行该代码,你会得到以下输出:
TASK [Get substring from list item] ********************************************
ok: [localhost] => (item={'item1': 'abcdefg', 'item2': 'hijklmn', 'item3': 'opqrst'}) => {
"msg": "abc"
}
ok: [localhost] => (item={'item1': 'abcdefg', 'item2': 'hijklmn', 'item3': 'opqrst'}) => {
"msg": "hij"
}
ok: [localhost] => (item={'item1': 'abcdefg', 'item2': 'hijklmn', 'item3': 'opqrst'}) => {
"msg": "opq"
}
从输出结果可以看出,我们成功地从每个列表项中提取了子字符串。