从 ansible 上的字符串中删除特定字符

从 ansible 上的字符串中删除特定字符

我有以下内容

- set_fact:
   test_result: " {{ htmlres.content | regex_search('http://website([0-9]+)', '\\1') }}"

使用调试,将返回以下内容" '[01]'"

由于只想要数字,我使用该函数进行了一些实验,并通过添加以下内容replace()删除了数字:[ ]

- set_fact:
   test_result: " {{ htmlres.content | regex_search('http://website([0-9]+)', '\\1')
| replace('[','') | replace(']','') }}"

我现在的问题是现在的输出" '01',我似乎无法删除'或空格。

由于某种原因,添加| trim到末尾并不会删除空格,并且添加regex_search('\'','')似乎也无法逃脱字符并起作用。

我是否遗漏了什么?

这是第一次删除后的调试输出:

"msg": [
    " '01'",
    ...

谢谢

答案1

你想的太困难了。regex_search()返回一个数组,并且您想要第一个项目。

- set_fact:
    test_result: "{{ htmlres.content | regex_search('http://website([0-9]+)', '\\1') | first }}"

开头的空白是你分配的结果test_result

    test_result: " {{ htmlres.content ...
                  ^-- here

只需将其移除即可。

相关内容