Войти

Показать полную графическую версию : Строка маска


netmax
13-02-2003, 08:57
Подскажите какой нибудь алгоритм проверки удовлетворяет ли строка маске.
Например дано
%2d%+[%*%] что говорит
два целых числа затем символ [ затем произвольное число символов затем символ ]
Вся проблема в произвольным числом символов, после идет еще какая нибудь маска. Или может быть знаете какие-нибудь адреса, где описаны именно АЛГОРИТМЫ этого дела, а не использование готовых ф-ций???

ivank
13-02-2003, 09:35
VBMUSTDIE
Если ручками - то писать конечный автомат, если автоматом, то генерировать их из регулярных выражений. Ну или pcre (perl compatible regular expressions, библиотека такая) использовать :)

Или тебе нужно соответствие произвольной маске проверять? Тогда только автоматически генерируемые КА спасут отца русской демократии, смотри на то как flex, pcre работают, алгоритмы там как раз самые те.

netmax
13-02-2003, 09:57
ivank
Так в этом вся соль - написать самому.
:biglaugh:
в С++ есть даже библиотека Regex кажется называется, но ведь это неспортивно.

ivank
13-02-2003, 20:33
VBMUSTDIE
Так ты не сказал, маска известна на момент компиляции или как? Станадртной библиотеки регэкспов нет, кстати. И повторяюсь, возьми, посмотри сырцы flex, там не сложно. Или книжку какую купи по теме (Допустим в "книге дракона" есть опимания всех необходимых принципов и алгоритмов).

mar
14-02-2003, 01:17
ivank
а что за книга дракона?

netmax
14-02-2003, 07:14
ivank
> Так ты не сказал, маска известна на момент компиляции или как?
Да, она известна... Действительно, что за книга дракона?

ivank
14-02-2003, 18:49
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