Jinja2如何去除所有字母数字和特殊字符?

3
尝试在jinja2中从字符串中删除所有特殊字符和字母数字字符。
XSLT:
  <xsl:variable name="splChar">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$&amp;%^*()_+.[]{}|\~`:;",'.?&lt;&gt;=
    </xsl:variable>
    <xsl:value-of select="translate($str,$splChar,'')" />

jinja2:

  {% str | replace("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$&amp;%^*()_+.[]{}|\~`:;",'.?", "")  %} 

你是否可以使用自定义过滤器作为选项? - undefined
很遗憾,我正在使用的平台不支持自定义过滤器的实现。我应该在之前提到这一点。 - undefined
所以,这不是关于XSLT的。你只是把这种语言作为例子使用。 - undefined
可以的,不过我正在从XSLT翻译到Jinja2。 - undefined
1个回答

3

这里提供一个使用regex_replace的解决方案。

它将所有不是(^)字母数字 (A-Za-z0-9) 的字符替换为空字符串 (""):

{% test_string | regex_replace ("[^A-Za-z0-9]","") %}

给定以下测试字符串'AAA\B\©©c\\oTT$e#Teste00-4?',使用该方法可以得到预期的结果AAABcoTTeTeste004


1
你确定我们在Jinja中有regex_replace函数可用吗? - undefined
1
你说得对。看起来regex_replace是一个Ansible过滤器! - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接