Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Как называется алгоритм например "*abc"


Автор: neosapient 26.4.2007, 13:09
Нужно осуществить поиск в блоке текста строки, т.е построить анализатор синтаксиса строки
Например, как в поиске - "*.ехе" выведет все ехе-шники

Подскажите, как называется данный вид синтаксических запросов (по-русски и по-английски)?

Где взять полный список правил (на русском, с примерами)?

Где взять исходники реализующие этот алгоритм (лучше на С/С++)?

-------------------
Конкретно, это надо, чтобы
- пользователь ввел строку.
- в цикле я проверяю пришло ли событие, когда оно пришло оно имеет строковой индентификатор
- я должен проверить этот идентификатор согластно той строке что ввел пользователь, 
- если проверка идентификатора события дала true, отрабатывать по алгоритму A
- если проверка идентификатора события дала false, отрабатывать по алгоритму B
- если проверка идентификатора события не дала результатов, отрабатывать по алгоритму, как при false

Автор: S.A.G. 26.4.2007, 13:25
Так а в чем проблема? Напиши процедуру анализа строки. Это же универовские лабы на начальные знания циклов, процедур по работе со строками.

Автор: maxim1000 26.4.2007, 16:07
в таком виде точно не знаю, наверное, что-то типа "сравнение с шаблоном"
есть более общий инструмент - регулярные выражения

Автор: Mayk 26.4.2007, 17:37
Цитата(neosapient @  26.4.2007,  17:09 Найти цитируемый пост)

Подскажите, как называется данный вид синтаксических запросов (по-русски и по-английски)?

Single Unix Specification определяет такое как Pattern Matching.

Цитата(neosapient @  26.4.2007,  17:09 Найти цитируемый пост)

Где взять исходники реализующие этот алгоритм (лучше на С/С++)?

Реализацию такого на си можно найти, отыскав исходники ф-ции glob().
Цитата(susv3)

 glob, globfree - generate pathnames matching a pattern

Можно взять http://www.google.com/search?q=glob.c и довести напильником до пригодного состояния.


Цитата(neosapient @  26.4.2007,  17:09 Найти цитируемый пост)

Где взять полный список правил (на русском, с примерами)?

http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_13


Автор: neosapient 26.4.2007, 20:10
maxim1000, точно - "регулярные выражения" 

Mayk,  за исходик спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)