Подсчет кол-ва подстрок в строке по маске

smkdesign

Новичок
Подсчет кол-ва подстрок в строке по маске

Задача

Найти в тексте количество подстрок удовлетворяющей маске.
Т.е. по сути тоже самое что делает функция fnmatch, с то лишь разницей что нужно не проверить соответсвует ли строка маске, а найти количество этих соответсвий в тексте.

Если кто знает подскажите название алгоритма чтоб хоть капать в нужную сторону, по ключевым словам "поиск по маске" перерыл уже все что можно, но все не то.

К сожалению регулярные выражения не подходят т.к. нужно обработать очень большой объем данных и скорость выполнения крайне важна.
 

С.

Продвинутый новичок
А чем по-твоему "маска" отличается от "регулярного выражения" в принципе, чтобы получить большую скорость?
 

smkdesign

Новичок
Ну хотя бы тем что маска включает в себя только два условия, это "*" и "?", мне нужна возможность использования вообсче только "*".

Регулярные выражения включают в себя гораздо более сложные условия и алгоритмы сравнения, соответсвенно скрость работы гораздо ниже. Опять же поиск используя регулярные выражения возвращает кучу данных, массив, который не нужен, но на это также тратятся ресурсы.
 

smkdesign

Новичок
В итоге конечно сделаю через strpos если так и не найду алгоритм, но мне кажется все же должен быть более сложный, но в то же время и более эффективный алгоритм.
 

AmdY

Пью пиво
Команда форума
если однобайтовая кодировка, то можно работать со строкой как с массивом
 

HraKK

Мудак
Команда форума
расскажите ка, что Вы делаете, а не задачу с одной стороны колокольни.
 
Сверху