Кто-нибудь попадал на Java-версию библиотеки регулярных выражений Google RE2 или java-библиотеку с аналогичными возможностями и хорошей производительностью? Требование производительности - это линейное время относительно длины регулярного выражения и длины входного текста.
Разъяснение
В большинстве реализаций регулярных выражений используется алгоритм обратного отслеживания для соответствия входному тексту и, следовательно, экспоненциальный в некоторых простых регулярных выражениях, таких как (.*).(.*).(.*).(.*)
. RE2 - это библиотека из Google, которая решает эту проблему, используя алгоритм, который линейно изменяется с размером ввода, используя концепции теории автоматов. Вопросник хочет знать, существуют ли библиотеки для Java, основанные на этом алгоритме.