python - 在 jinja 中使用正则表达式

标签 python regex jinja2

我有一个 JSON 字符串,如下所示:

jsonstring = '{"key1": "comma,separated,things": "comma,separated,things", "key3": "semi;colon;separated;things"}'

我想在 jinja 模板中使用它,例如:

{{", ".join(re.findall(r'": "(.*?)"',jsonstring)).replace(";",",")}}

显然这不起作用。

该字符串直接来自 sqlalchemy 模型,我无法通过 python 对其进行处理。有没有办法做到这一点并避免使用 javascript 处理它?<​​/p>

最佳答案

首先,在 Python 中定义一个新函数:

def regex(jsonstring):
    return ", ".join(re.findall(r'": "(.*?)"',jsonstring)).replace(";",",")

然后,将其定义为 Jinja 过滤器(在 Python 中执行此操作,必须在定义函数之后):

app.jinja_env.filters['regex'] = regex

最后,在Jinja模板中使用它:

{{ jsonstring|regex }}

关于python - 在 jinja 中使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33685233/

相关文章:

python导入一个非标准库

Python numpy 保留已排序二维数组的索引列表

c - 删除 C 中的部分字符串(正则表达式?)

list - Ansible Jinja2 过滤器

python - WEKA - 无法读取使用 Python pandas 生成的 CSV

python - 如何在 Python 中访问类成员变量?

python - 文件名约定匹配的正则表达式

regex - 正则表达式 : Differences between browsers

python - CherryPy + Jinja,在哪里初始化环境

python - 使用带空格的 Jinja2 字符串作为 HTML 属性