Подтвердить что ты не робот

Как использовать регулярные выражения в Jinja2?

Я новичок в Jinja2, и до сих пор я мог делать большую часть того, что хочу. Тем не менее, мне нужно использовать регулярные выражения, и я не могу найти ничего в документации или в Googles.

Я хотел бы создать макрос, который имитирует поведение этого в Javascript:

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

который удалит символы в строке, а затем заменит пробелы символами подчеркивания. Как я могу сделать это с помощью Jinja2?

4b9b3361

Ответ 1

Существует уже существующий фильтр, называемый 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