Мне нужно реализовать алгоритм для множественного расширенного соответствия строк в тексте.Алгоритм для множественного расширенного соответствия строк
Расширенная означает наличие подстановочных знаков (любое количество символов вместо звезды), например:
abc*def //matches abcdef, abcpppppdef etc.
Множественные означает, что поиск происходит одновременно для нескольких моделей струнных (не отдельный поиск для каждого шаблона), например:
abc*def
abc
whatever
some*string
ВОПРОС:
Что такое быстрый алгоритм, который может выполнять множественное расширенное сопоставление строк?
Предпочтительно оптимизирован для SIMD-инструкций и многоядерной реализации. Реализация с открытым исходным кодом (C/C++/Python) также будет отличной.
Спасибо
Александр Блех, благодарю вас за отличный ответ! Я ищу скорость обработки не менее 10 Гбит/с на одном ядре современного процессора. Кроме того, мне не нужна обработка регулярных выражений, просто несколько расширенных сопоставлений строк. Из упомянутой вами статьи кажется, что скорость была неплохой. – Konstantin
Кстати, у вас есть практический опыт работы с любым из этих двигателей? Что вы можете порекомендовать по своему опыту? – Konstantin
Я хотел бы подчеркнуть свою заинтересованность в алгоритмах/реализациях, которые в значительной степени зависят от инструкций SIMD в современных процессорах. – Konstantin