После прочтения RE / NFA и DFA, кажется, что нахождение подстроки в строке может на самом деле быть асимптотически быстрее, используя RE, а не поиск грубой силы O (mn). Я рассуждаю так, что DFA будет фактически поддерживать состояние и избегать обработки каждого символа в «стоге сена» более одного раза. Следовательно, поиск в длинных строках может быть намного быстрее, если он выполняется с помощью регулярных выражений.
Конечно, это действительно только для тех сопоставителей RE, которые конвертируют из NFA в DFA.
Кто-нибудь испытал лучшую производительность совпадения струн в реальной жизни, когда использовал RE, а не метод грубой силы?