[Moscow.pm] Ускорение регэкспа
Konstantin S. Uvarin
khedin на gmail.com
Чт Июл 11 23:43:47 PDT 2013
Приветствую!
Как вариант: пилим строку субстрами, начиная с *каждого* символа, и
строим хеш:
{ 15_символов_подряд => [ вхождение, вхождение2, ... ] }
Затем все ключи, указывающие на массив <5 просто выкидываем, а
остальные проверяем, что они не слишком "тесные" (и выкидываем
лишние вхождения).
Памяти сожрёт много, зато время, кажется, около линейного.
> Здравствуйте.
>
> Есть регэксп /(.{15})(.+\1){5}/o . Написан, чтобы искать повторяющиеся
> 6 раз и более подстроки длинной 15 и более символов. На большом
тексте
> работает очень долго, что объяснимо. Как бы его ускорить или
решить
> задачу иначе?
>
> --
> С уважением,
> Михаил mailto:postmaster at softsearch.ru
>
> --
> Moscow.pm mailing list
> moscow-pm at pm.org | http://moscow.pm.org
>
--
WBR,
Konstantin S. Uvarin
Подробная информация о списке рассылки Moscow-pm