32

私は Jinja2 を初めて使いましたが、これまでのところ、やりたいことのほとんどを行うことができました。ただし、正規表現を使用する必要があり、ドキュメントや Googleのどこにも何も見つからないようです。

Javascript でこれの動作を模倣するマクロを作成したいと思います。

function myFunc(str) {
    return str.replace(/someregexhere/, '').replace(' ', '_');
}

文字列内の文字を削除し、スペースをアンダースコアに置き換えます。Jinja2でこれを行うにはどうすればよいですか?

4

1 に答える 1

44

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
于 2012-10-10T17:46:20.617 に答える