看来 Jinja2(Saltstack 中支持的)不支持正则表达式匹配,除非我遗漏了一些东西?许多利用 Jinja2 的框架,例如 Ansible have custom support用于正则表达式过滤器。 Elsewhere人们被引导编写自定义过滤器。
向知情人士提出一些问题,可能有助于理解这种情况:
- 在 Saltstack 中利用正则表达式匹配的最佳方式是什么? (我的用例相当简单:测试字符串是否以子字符串结尾,但问题更笼统)。
- 由于 Jinja2 中缺乏标准解决方案,将其作为 Saltstack 中的标准扩展(类似于 Ansible 解决方案)提供是一个好主意吗?
- Jinja2 中没有标准正则表达式支持的理由是什么?在一个 even Windows Powershell 的世界里支持正则表达式匹配,自从this perceived regression from Jinja2 compared to the previous version has been complained about since 2010以来我一定有一个失踪的原因;然而,Jinja's github 中甚至没有任何问题。我能找到吗?
最佳答案
即使它很旧,在谷歌搜索 salt 匹配正则表达式时,它仍然是最上面的帖子。在2018.3.3中可以编写以下代码:
{% if "abc" is match("*b*") %}
...
{% endif %}
相关文档链接:https://docs.saltstack.com/en/latest/topics/jinja/index.html#match
关于jinja2 过滤器中的正则表达式匹配(用于 saltstack),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38564798/