Новый движок для регулярок
Очень интересная статья про новый движок для регулярок.
Авторы изначально хотели поддержать возможность пересечения и дополнения регулярок (и в статье есть хороший пример с проверкой ограничений для пароля), но чтобы на статью обратили внимание, упоролись по производительности и получили еще хороший выигрыш по скорости по бенчмаркам, достигнув при этом линейной асимптотики (как я понял, ReDos не грозит).
Одним из открытий для меня стало, что в PCRE-регулярках (т.е. почти везде) (a|ab)+ и (ab|a)+ — не одно и то же, и варианты рассматриваются жадно слева направо. Из-за этого для aababaabab первая регулярка выдаст aa, а вторая — всю строку.
Комментарии