【问题标题】:Ansible Filter regex_search does not ExistAnsible 过滤器 regex_search 不存在
【发布时间】:2020-03-27 16:53:55
【问题描述】:

我从我们的剧本中截取了这段代码:

- name: Set version
  set_fact:
    my_version: "My version is {{ my_file.stdout | regex_search('[0-9\.]+') }}" 

...其中 my_file 是“program_1.2.3_install.exe”

它返回过滤器 regex_search 不存在。 我们正在运行 Ansible 2.0.0.2

有人知道如何使这个正则表达式工作吗? 谢谢!

【问题讨论】:

  • 这与实际的正则表达式模式无关,而是 Ansible 过滤器 'regex_search' 不存在......而且,这只是我们实际问题的一个示例。

标签: regex ansible


【解决方案1】:

给定变量

my_file: 'program_1.2.3_install.exe'

任务

   - set_fact:
        my_version: "{{ my_file|regex_replace(myregex, myreplace) }}"
      vars:
        myregex: '^(.*?)([0-9\.]+)(.*)$'
        myreplace: '\2'
    - debug:
        var: my_version

给予

    "my_version": "1.2.3"

也可以使用split()。下面的任务给出了相同的结果

    - set_fact:
        my_version: "{{ my_file.split('_').1 }}"
    - debug:
        var: my_version

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多