Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Строка маска (http://forum.oszone.net/showthread.php?t=30670)

netmax 13-02-2003 08:57 209630

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

ivank 13-02-2003 09:35 209631

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

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

netmax 13-02-2003 09:57 209632

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

ivank 13-02-2003 20:33 209633

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

mar 14-02-2003 01:17 209634

ivank
а что за книга дракона?

netmax 14-02-2003 07:14 209635

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

ivank 14-02-2003 18:49 209636

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-