После чтения RE/NFA и DFA кажется, что поиск подстроки внутри строки может быть асимптотически быстрее с использованием RE, а не грубой силы O (mn) find. Мое рассуждение состоит в том, что DFA фактически поддерживает состояние и не обрабатывает каждый символ в «стоге сена» более одного раза. Следовательно, поиск в длинных строках может быть намного быстрее, если делать регулярные выражения.Подстрочный матч быстрее с регулярным выражением?
Конечно, это справедливо только для RE-адаптеров, которые конвертируют из NFA в DFA.
Кто-нибудь испытал лучшее качество исполнения строк в реальной жизни при использовании RE, а не подбора грубой силы?
Boyer-Moore - 'O (n)'; он никогда не требует больше, чем сравнения «3n». Более простой Boyer-Moore-Horspool может потребовать до 'mn', но это не тот же самый алгоритм. – polygenelubricants