在jinja中使用正则表达式

时间:2015-11-13 03:01:05

标签: 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>

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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

{{ jsonstring|regex }}