Jinja2 模板用新格式查找和替换字符串

Posted

技术标签:

【中文标题】Jinja2 模板用新格式查找和替换字符串【英文标题】:Jinja2 template find and replace string with new format 【发布时间】:2020-08-20 05:50:01 【问题描述】:

我有一个变量,其值为FileSystem,我想在我的模板中将其打印为file_system。 注意我在这里做两件事: 1. 如果我的字符串的第一个字母是大写字母,那么我将其转换为小写 2. 如果我的任何其他字母大写,那么我将其替换为下划线,后跟其较低的字符串格式。 另一个例子是将*** 转换为stack_over_flow 我怎样才能完成这项工作?

【问题讨论】:

【参考方案1】:

您可以编写一个自定义 jinja 过滤器,将您的变量作为输入,并允许您应用所需的转换。

引用自官方 jinja 帮助:

自定义过滤器只是常规的 Python 函数,它们将过滤器的左侧作为第一个参数,并将传递给过滤器的参数作为额外参数或关键字参数。

jinja help section for custom filters

例子:

def convert_to_snakecase(value):
    # convert your value here (lower case first letter + snake case)
    return formatted_value

注册您的自定义过滤器:

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

在模板中调用你的过滤器:

 my_variable|convert_to_snakecase 

【讨论】:

以上是关于Jinja2 模板用新格式查找和替换字符串的主要内容,如果未能解决你的问题,请参考以下文章

Word文件批量查找替换字符串

C++编程,查找字符串子串并替换。

用新数字替换第一个左括号和数字

Jinja2模板引擎简介

如何强制editText框格式化缩进替换文本?

wps怎么用替换功能