首页 > 解决方案 > Oneliner 断言列表的所有元素

问题描述

在 Ansible 中,我试图找到一个 oneliner 来断言列表的所有元素都与使用 python 生成器的正则表达式匹配。

就像是:

- assert:
    that:
      - (item is match('{{ regex }}') for item in list)

但我无法弄清楚正确的语法。

可能吗 ?如何 ?

标签: ansibleassert

解决方案


一种可能的解决方案:使用select过滤器将列表减少为与您的正则表达式匹配的元素,并将结果列表的大小与原始列表进行比较:

- assert:
    that:
      - (my_list | select('match', my_regex) | list | length) == (my_list | length)

推荐阅读