使用regex_findall将文本拆分为单词



我要做的是将文本拆分为单词。我不想只通过空格来分割它,而是通过其他分隔符来分割=&";,我不想在有点(.(的时候拆分,因为我想把IP作为一个整体。是一个包含我想要拆分的单词的文件示例

> cat myconfig.xtx
key1=192.168.0.1
key2 = 192.168.0.2
key3="192.168.0.3"
key4 = "192.168.0.4"

从终端,我正在运行类似的程序

grep -oE '(w|.)+' mycongig.txt

它正在按预期运行,即使我不完全理解原因:(但是当我尝试在jinja2模板中使用regex_findall时,我无法使其工作。

我在ansible(以及其他几次尝试(中尝试过这样的东西

- name: Split words
debug:
msg: "{{ lookup('file', item) | regex_findall('(\w|\.)+') }}"
loop: "{{ files }}"

有什么想法吗?提前感谢

Mapregex_findall,例如

- debug:
msg: "{{ lookup('file', 'mycongig.txt').splitlines()|
map('regex_findall', '[\w\.]+')|
list }}"

给出

msg:
- - key1
- 192.168.0.1
- - key2
- 192.168.0.2
- - key3
- 192.168.0.3
- - key4
- 192.168.0.4

最新更新