jinja2 过滤器中的正则表达式匹配(用于 saltstack)

标签 regex jinja2 salt-stack

看来 Jinja2(Saltstack 中支持的)不支持正则表达式匹配,除非我遗漏了一些东西?许多利用 Jinja2 的框架,例如 Ansible have custom support用于正则表达式过滤器。 Elsewhere人们被引导编写自定义过滤器。

向知情人士提出一些问题,可能有助于理解这种情况:

  1. 在 Saltstack 中利​​用正则表达式匹配的最佳方式是什么? (我的用例相当简单:测试字符串是否以子字符串结尾,但问题更笼统)。
  2. 由于 Jinja2 中缺乏标准解决方案,将其作为 Saltstack 中的标准扩展(类似于 Ansible 解决方案)提供是一个好主意吗?
  3. 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/

相关文章:

html - 为什么样式表只适用于索引页,而不适用于索引页的任何扩展? (使用 Jinja 的模板)

mysql - 如果目录为空,则仅在 Salt 中执行命令

autocomplete - 如何在 saltstack 中使用自动完成功能

salt-stack - 如何使用 Hashicorp Vault PKI 后端为 minions 生成动态证书

正则表达式删除由空格分隔的字符周围的括号

javascript - 在 Javascript 中,如何使用 '/' 和 '/g' 内的变量对字符串执行全局替换?

javascript - 预填充 WTForms 字段的当前值以对其进行编辑

python-3.x - 在Jinja2中使用 “if any():”?

javascript - 使用正则表达式在 JavaScript 中屏蔽日期的最后两位数字

regex - 在 vi/vim 中保留某些 "words"的同时替换