私はJinja2を初めて使用しますが、これまでのところ、ほとんどのことを行うことができました。ただし、正規表現を使用する必要があり、 ドキュメント またはGoogleのどこにも何も見つからないようです。
Javascriptでこれの動作を模倣するマクロを作成したいと思います。
function myFunc(str) {
return str.replace(/someregexhere/, '').replace(' ', '_');
}
文字列内の文字を削除してから、スペースをアンダースコアに置き換えます。 Jinja2でこれを行うにはどうすればよいですか?
replace
と呼ばれる既存のフィルターがあり、実際に正規表現が必要ない場合に使用できます。それ以外の場合は、 カスタムフィルター を登録できます。
{# Replace method #}
{{my_str|replace("some text", "")|replace(" ", "_")}}
# Custom filter method
def regex_replace(s, find, replace):
"""A non-optimal implementation of a regex filter"""
return re.sub(find, replace, s)
jinja_environment.filters['regex_replace'] = regex_replace