web-dev-qa-db-ja.com

Jinja2で正規表現を使用するにはどうすればよいですか?

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

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

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

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

26
Jason

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
34
Sean Vieira