Строка маска

Ответить
Аватара пользователя
netmax

Строка маска

Сообщение netmax »

Подскажите какой нибудь алгоритм проверки удовлетворяет ли строка маске.

Например дано

%2d%+[%*%] что говорит

два целых числа затем символ [ затем произвольное число символов затем символ ]

Вся проблема в произвольным числом символов, после идет еще какая нибудь маска. Или может быть знаете какие-нибудь адреса, где описаны именно АЛГОРИТМЫ этого дела, а не использование готовых ф-ций???
Аватара пользователя
ivank

Re: Строка маска

Сообщение ivank »

VBMUSTDIE

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



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

Re: Строка маска

Сообщение netmax »

ivank

Так в этом вся соль - написать самому.

Изображение

в С++ есть даже библиотека Regex кажется называется, но ведь это неспортивно.
Аватара пользователя
netmax

Re: Строка маска

Сообщение netmax »

VBMUSTDIE

Так ты не сказал, маска известна на момент компиляции или как? Станадртной библиотеки регэкспов нет, кстати. И повторяюсь, возьми, посмотри сырцы flex, там не сложно. Или книжку какую купи по теме (Допустим в "книге дракона" есть опимания всех необходимых принципов и алгоритмов).
Аватара пользователя
mar

Re: Строка маска

Сообщение mar »

ivank

а что за книга дракона?
Аватара пользователя
mar

Re: Строка маска

Сообщение mar »

ivank

> Так ты не сказал, маска известна на момент компиляции или как?

Да, она известна... Действительно, что за книга дракона?
Аватара пользователя
netmax

Re: Строка маска

Сообщение netmax »

mar

VBMUSTDIE

http://www.ozon.ru/?context=detail&id=146264




VBMUSTDIE

Раз маска известна на момент компиляции, то можно написать небольшой кусок кода "ручками", вместо поиска универсального решения. Хотя опять же - Конечные автоматы спасут отца русской демократии.
http://www.kalinin.ru/programming/alg/21_08_00.shtml
Ответить

Вернуться в «Программирование и базы данных»