带有多个分隔符的 ansible string.split()

Dar*_*ach 3 split ansible

我很难尝试使用多个分隔符将字符串拆分为列表。我可以将它拆分两次,如下所示:

myString.split(':')[1].split('.')
Run Code Online (Sandbox Code Playgroud)

然而,这看起来很不优雅。在我的脑海中,我想做这样的事情:

myString.split(': | .')
Run Code Online (Sandbox Code Playgroud)

这也是一回事吗?

Kan*_*aad 5

我可以想到两种方法来做到这一点。

用一个分隔符替换所有分隔符,然后拆分:

- set_fact: my_list="{{ (myString | regex_replace(':|.', ':')).split(':') }}"
Run Code Online (Sandbox Code Playgroud)

使用正则表达式拆分:

- set_fact: mystr="{{ myString | regex_findall('([^:.]+)') }} "
Run Code Online (Sandbox Code Playgroud)