Ansible 列表变量和 Select 过滤器以忽略匹配项

Ansible List Variable and Select Filter to ignore matched items

我在 ansible 剧本中有一个变量 dir_lst_raw,其值为 list,如下所示:

"dir_lst_raw": [
        "/path1/dir1/user",
        "/path2/dir2/admin",
        "/path3/dir3/user.ansible_backup_2020-03-16",
        "/path1/dir1/config.ansible_backup_2020-03-16",
        "/path2/dir2/dir3/somefile"
      ]

我需要删除所有包含 .ansible_backup_ 的行,并作为 list 保存到另一个变量。 我用谷歌搜索了正则表达式并尝试 不匹配模式与 select 过滤器 如下:

  - set_fact:
      dir_lst: "{{ dir_lst_flt_r | select('match','(^.ansible_backup_)+') | list }}"

但新变量 dir_lst 结果是一个空列表。我期待 dir_lst 如下:

"dir_lst_raw": [
        "/path1/dir1/user",
        "/path2/dir2/admin",
        "/path2/dir2/dir3/somefile"
     ]

有人可以建议我如何完成吗?

下面的任务完成工作

    - set_fact:
        dir_lst: "{{ dir_lst_raw|reject('match', my_regex)|list }}"
      vars:
        my_regex: '^(.*)\.ansible_backup_(.*)$'
    - debug:
        var: dir_lst

给予

    "dir_lst": [
        "/path1/dir1/user", 
        "/path2/dir2/admin", 
        "/path2/dir2/dir3/somefile"
    ]