Devtools отключит кэширование, чтобы обновление файла шаблона могло быть пересмотрено, когда его необходимо будет отрендерить.
Когда ваше приложение запускается в процессе JVM, ничто не указывает на ваши исходные файлы, и оно может видеть только путь к классу. Поэтому любые изменения, которые вы вносите в исходный файл, должны быть обновлены в соответствии с расположением пути к классу, что обычно происходит при запросе вашей IDE «Построить проект».
Таким образом, пропущенный шаг для шаблона заключается в том, что, и если в документации нет ясности по этому поводу, не стесняйтесь открывать вопрос с предложением, поскольку мы много раз повторяли это.
Хотя в i18n нет ничего конкретного. Если вы измените их и обновите путь к классу, мы перезапустим приложение, а не подберем его так же, как для шаблонов. Мы действительно пытались поддержать это один раз, см. этот вопрос для более подробной информации . Сказав это, вы не должны ожидать, что изменение файла ресурсов "просто сработает". Изменение конфигурации, очевидно, потребует, например, перезапуска приложения (опять же, путем обновления пути к классам при использовании devtools).
Некоторые добавленные примечания о поддержке IDE:
Если вы не используете IDE, вам нужно что-то, чтобы обновить classpath для вас. Мы пытались поддержать это из коробки, но оказалось довольно сложно. Есть комментарий, который поможет вам, если вы используете Gradle .
Модуль Python re был основан на PCRE , но перешел на собственную реализацию.
Вот ссылка на C код .
Похоже, что библиотека основана на рекурсивном отслеживании с возвратом, когда был выбран неверный путь.
Регулярное выражение и размер текста n
a? n a n соответствует n
Имейте в виду, что этот график не является представителем обычного поиска по регулярным выражениям.
Нет никаких "гарантий эффективности" для Python RE не больше, чем для любой другой части языка (стандартная библиотека C ++ - единственный известный мне широко распространенный языковой стандарт, который пытается установить такие стандарты - но нет никаких стандартов, даже в C ++, указывающих, что, скажем, умножение двух целых чисел должно занимать постоянное время или что-то в этом роде); также нет никакой гарантии, что большие оптимизации не будут применены в любое время.
Сегодня Ф. Лунд (первоначально отвечавший за реализацию текущего модуля RE Python и т.д.), представляя Unladen Swallow на Pycon Italia, упомянул, что один из проспекты они ' Я буду изучать, как скомпилировать регулярные выражения непосредственно в промежуточный код LLVM (а не в их собственный байт-код, который будет интерпретироваться специальной средой выполнения), поскольку обычный код Python также компилируется в LLVM (в скором выпуске Unladen Swallow), RE и окружающий его код Python могут быть оптимизированы вместе, даже иногда довольно агрессивными способами. Я сомневаюсь, что что-то подобное очень скоро будет хоть сколько-нибудь близко к "готовому к производству"; -).
Сопоставление регулярных выражений с обратными ссылками является NP-сложной задачей , которая, по крайней мере, так же сложна, как NP-Complete . По сути, это означает, что это так же сложно, как и любая проблема, с которой вы, вероятно, столкнетесь, и большинство компьютерных ученых считают, что в худшем случае может потребоваться экспоненциальное время. Если бы вы могли сопоставить такие «регулярные» выражения (которые на самом деле не являются техническими) за полиномиальное время, вы могли бы выиграть миллион долларов .