Jestem nowy w Jinja2 i do tej pory udało mi się zrobić większość tego, co chcę. Jednak potrzebuję użyć wyrażeń regularnych i nie mogę znaleźć niczego nigdzie w the documentation lub w Googles.Jak używać wyrażeń regularnych w Jinja2?
Chciałbym stworzyć makro, które naśladuje zachowanie to w JavaScript:
function myFunc(str) {
return str.replace(/someregexhere/, '').replace(' ', '_');
}
który usunie znaków w ciągu, a następnie zastąpić spacje podkreślenia. Jak mogę to zrobić z Jinja2?
tak to jest droga i skończyło się, niestety. jest głupie, nie możesz używać regex w jinja2 – Jason
hej, stary! Mówisz, że to nieoptymalna implementacja, czy mógłbyś opracować coś, co wyglądałoby jak optymalne? – elias
@elias - ponieważ 'find' jest kompilowany za każdym razem, gdy jest używany przez' re.sub', jeśli był używany jako filtr w dużej pętli, mógł * potencjalnie * być wąskim gardłem. Gdyby tak było, mógłbyś dodać słowo kluczowe arg do filtra ('cache') i skompilować i zapisać argument' find', gdy 'cache' został ustawiony na 'True' - lub możesz po prostu skompilować i cacheować wszystkie' find' argumenty i wybierz strategię odrzucania, która najlepiej pasuje do Twojej aplikacji. –