![]() |
Подскажите какой нибудь алгоритм проверки удовлетворяет ли строка маске.
Например дано %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 |
Время: 19:05. |
Время: 19:05.
© OSzone.net 2001-