English 中文(简体)
如何使用 regex 来过滤不可存取的字符串
原标题:How to filter a string in ansible using regex

我用《隐形》来读一个值 并分析它

<强 > 价值

link: hdfs:///test/test2

<% 1> 输出应为 :

/test/test2

<强>/强> 无效的天体:

   - set_fact:
        my_var: "{{ link | regex_search( hdfs:// ) }}"
     delegate_to: localhost
问题回答

有更多的选项 :

  • Use the filter regex_replace
    - set_fact:
        my_var: "{{ link | regex_replace(_regex, _replace) }}"
      vars:
        _regex:  ^(.*)/(.*)/(.*)$ 
        _replace:  /2/3 

给您想要的

  my_var: /test/test2
  • Simple split&join works too. The below expression gives the same result
  my_var: "/{{ link.split( / )[-2:] | join( / ) }}"
  • But, the simplest option is the filter urlsplit
  my_var: "{{ link | urlsplit( path ) }}"

用于测试的完整书本实例

- hosts: localhost

  vars:

    link: hdfs:///test/test2

    _regex:  ^(.*)/(.*)/(.*)$ 
    _replace:  /2/3 
    my_var1: "{{ link | regex_replace(_regex, _replace) }}"
    my_var2: "/{{ link.split( / )[-2:] | join( / ) }}"
    my_var3: "{{ link | urlsplit( path ) }}"

  tasks:

    - debug:
        var: my_var1
    - debug:
        var: my_var2
    - debug:
        var: my_var3

    - set_fact:
        my_var: "{{ link | regex_replace(_regex, _replace) }}"
      vars:
        _regex:  ^(.*)/(.*)/(.*)$ 
        _replace:  /2/3 
    - debug:
        var: my_var

你可以尝试一些类似的东西如下

  • basevariable should be set to hdfs:///test/test2
- name: regex replace
  set_fact:
    final_var: "{{  basevariable | regex_replace(reg_search, reg_replace)  }}"
  tags:
    - reg-replace

https://docs.ansible.com/ansible/latist/ recallings/ansible/内建/replace_module.html' rel=“不跟随 noreferrer'>更多信息





相关问题
Uncommon regular expressions [closed]

Recently I discovered two amazing regular expression features: ?: and ?!. I was curious of other neat regex features. So maybe you would like to share some tricky regular expressions.

regex to trap img tag, both versions

I need to remove image tags from text, so both versions of the tag: <img src="" ... ></img> <img src="" ... />

C++, Boost regex, replace value function of matched value?

Specifically, I have an array of strings called val, and want to replace all instances of "%{n}%" in the input with val[n]. More generally, I want the replace value to be a function of the match ...

PowerShell -match operator and multiple groups

I have the following log entry that I am processing in PowerShell I m trying to extract all the activity names and durations using the -match operator but I am only getting one match group back. I m ...

Is it possible to negate a regular expression search?

I m building a lexical analysis engine in c#. For the most part it is done and works quite well. One of the features of my lexer is that it allows any user to input their own regular expressions. This ...

regex for four-digit numbers (or "default")

I need a regex for four-digit numbers separated by comma ("default" can also be a value). Examples: 6755 3452,8767,9865,8766,3454 7678,9876 1234,9867,6876,9865 default Note: "default" ...

热门标签