Показать полную графическую версию : Строка маска
Подскажите какой нибудь алгоритм проверки удовлетворяет ли строка маске.
Например дано
%2d%+[%*%] что говорит
два целых числа затем символ [ затем произвольное число символов затем символ ]
Вся проблема в произвольным числом символов, после идет еще какая нибудь маска. Или может быть знаете какие-нибудь адреса, где описаны именно АЛГОРИТМЫ этого дела, а не использование готовых ф-ций???
VBMUSTDIE
Если ручками - то писать конечный автомат, если автоматом, то генерировать их из регулярных выражений. Ну или pcre (perl compatible regular expressions, библиотека такая) использовать :)
Или тебе нужно соответствие произвольной маске проверять? Тогда только автоматически генерируемые КА спасут отца русской демократии, смотри на то как flex, pcre работают, алгоритмы там как раз самые те.
ivank
Так в этом вся соль - написать самому.
:biglaugh:
в С++ есть даже библиотека Regex кажется называется, но ведь это неспортивно.
VBMUSTDIE
Так ты не сказал, маска известна на момент компиляции или как? Станадртной библиотеки регэкспов нет, кстати. И повторяюсь, возьми, посмотри сырцы flex, там не сложно. Или книжку какую купи по теме (Допустим в "книге дракона" есть опимания всех необходимых принципов и алгоритмов).
ivank
а что за книга дракона?
ivank
> Так ты не сказал, маска известна на момент компиляции или как?
Да, она известна... Действительно, что за книга дракона?
mar
VBMUSTDIE
http://www.ozon.ru/?context=detail&id=146264
VBMUSTDIE
Раз маска известна на момент компиляции, то можно написать небольшой кусок кода "ручками", вместо поиска универсального решения. Хотя опять же - Конечные автоматы спасут отца русской демократии. http://www.kalinin.ru/programming/alg/21_08_00.shtml
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.