【问题标题】:replace multiple patterns with multiple values in ansible在ansible中用多个值替换多个模式
【发布时间】:2020-06-13 02:55:41
【问题描述】:

我在 ansible 中使用regex_replace 过滤器。我可以让它工作,但它真的很麻烦。 我就是这样的

- set_fact:
    variable: "{{ value | regex_replace("84","89") | regex_replace("76","78") | regex_replace("45","23"}}"

有没有办法,我可以一次管道 regex_replace 并用多个值替换多个模式。

【问题讨论】:

    标签: python json regex ansible


    【解决方案1】:

    问:“我可以一次管道 regex_replace 并用多个值替换多个模式吗?”

    A:不,这是不可能的。但是你可以在循环中做到这一点。例如

      vars:
        my_var: "ABCDEFGH"
    
      tasks:
        - set_fact:
            my_var: "{{ my_var | regex_replace(item.regex, item.replace) }}"
          loop:
            - {regex: "A", replace: "1"}
            - {regex: "C", replace: "3"}
            - {regex: "E", replace: "5"}
        - debug:
            var: my_var
    

    给予

        "my_var": "1B3D5FGH"
    

    或者,为了最小化代码,下面的任务给出了相同的结果

        - set_fact:
            my_var: "{{ my_var | regex_replace(item.0, item.1) }}"
          loop:
            - ["A", "1"]
            - ["C", "3"]
            - ["E", "5"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-07
      • 2016-10-16
      • 1970-01-01
      • 2021-11-17
      • 2021-03-05
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      相关资源
      最近更新 更多