我用此值进行了变量测试
D:\\Scripts\\Exports\\VM_State_201907161157.csv
我想用"\\"
替换所有"\"
,所以最终结果应该是D:\Scripts\Exports\VM_State_201907161157.csv
如何在ansible中使用regex_replace做到这一点:-
- set_fact:
test2: "{{ test | regex_replace() }}"
答案 0 :(得分:0)
单引号样式由周围的“'”指示符指定。因此,在单引号标量内,需要重复这样的字符。这是在单引号标量中执行转义的唯一形式。特别是,可以自由使用“ \”和“”字符。...
以下任务
vars:
# string1: 'D:\\Scripts\\Exports\\VM_State_201907161157.cs'
string1: 'D:\\Scr'
tasks:
- debug:
var: string1|list
- set_fact:
string2: |-
{{ string1|regex_replace( '\\\\', '\\' ) }}
- debug:
var: string2|list
给予(将字符串转换为列表以查看元素)
TASK [debug] ********************************************************************************
ok: [localhost] => {
"string1|list": [
"D",
":",
"\\",
"\\",
"S",
"c",
"r"
]
}
TASK [set_fact] *****************************************************************************
ok: [localhost]
TASK [debug] ********************************************************************************
ok: [localhost] => {
"string2|list": [
"D",
":",
"\\",
"S",
"c",
"r"
]
}
还可以比较通过模板创建的文件中的字符串
string1: {{ string1 }}
string2: {{ string2 }}
给出
string1: D:\\Scr
string2: D:\Scr