LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

Из паттерна делаем строку с 2 нулями на конце, заменяем '*' нулем.
Ищем первый образец, от следующего за концом найденного символа ищем следующий образец. Повторяем, пока не закончится строка образцов.
Получив искомый фрагмент, сдвигаем начало поиска последнего (n-го) фрагмента образца на 1, повторяем, собирая совпавшее. Повторяем для n-1, n-2,.. фрагментов образца рекурсивно.

Исходная версия bormant, :

Из паттерна делаем строку с 2 нулями на конце, заменяем '*' нулем.
Ищем первый образец, от следующего за концом найденного символа ищем следующий образец. Повторяем, пока не закончится строка образцов.
Получив искомый фрагмент, сдвигаем начало поиска последнего (n-го) фрагмента образца, повторяем, собирая совпавшее. Повторяем для n-1, n-2,.. фрагментов образца рекурсивно.