这是我的ansible主机文件的一部分:
[Arista]
Ars-898z.cnd0 arista_host=Ars-898z.cnd0.example.com
Ars-898y.mex0 arista_host=Ars-898y.mex0.exmaple.com
我想以某种方式使用过滤或正则表达式来提取我的ansible playbook中的cnd或mex(第一个和第二个点之间的字符串)并保存一个变量,例如" dcname"并使用它创建一个文件夹。
请让我知道如何做到这一点。我已经搜索了stackoverflow但是没有得到任何类似的问题的ansible
答案 0 :(得分:4)
这个怎么样?
(?<=\.)[^.]+(?=\.[^.]*\.[^.]*$)
这是一个更灵活的解决方案:
(?<=\.)[^.]+(?=(?:\.[^.]*){3}$)
3
可以调整。它是匹配的子字符串后面的点'.'
的数量。如果您输入2
,则会获得"cnd0"
,如果您输入3
,则会获得"cnd0 arista_host=Ars-898z"
。
另一个demo。