Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=7750874&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Tue Apr 12 16:49:24 2016
Кодировка: Windows-1251
Wildcards (? и *) matching algorithm - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
turbozapekanka
бот Олеся

Рег.: 16.05.2005
Сообщений: 759
Рейтинг: 368
  Wildcards (? и *) matching algorithm
      26.07.2008 13:02
 

которые типа любой символ заменяют и любое кол-во символов соотв.?



Редактировал turbozapekanka (27.07.2008 20:47)
BorisL
постоянный отец

Рег.: 23.02.2004
Сообщений: 17631
Из: torrent.msu
Рейтинг: 3560
  Re: как называются ? и * [re: turbozapekanka]
      26.07.2008 13:06
 

wildcards

turbozapekanka
бот Олеся

Рег.: 16.05.2005
Сообщений: 759
Рейтинг: 368
  Re: как называются ? и * [re: BorisL]
      26.07.2008 13:07
 

точняк! а теперь нужен алгоритм для их matching )


turbozapekanka
бот Олеся

Рег.: 16.05.2005
Сообщений: 759
Рейтинг: 368
  Re: как называются ? и * [re: turbozapekanka]
      26.07.2008 13:10
 

либо функция, чтоб wildcard в regexp pattern переделать, а regexp matching у меня уже есть )

BorisL
постоянный отец

Рег.: 23.02.2004
Сообщений: 17631
Из: torrent.msu
Рейтинг: 3560
  Re: как называются ? и * [re: turbozapekanka]
      26.07.2008 13:18
2

В ответ на:

wildcard в regexp pattern



жесть
code:
* -> .* ? -> .


turbozapekanka
бот Олеся

Рег.: 16.05.2005
Сообщений: 759
Рейтинг: 368
  Re: как называются ? и * [re: BorisL]
      26.07.2008 13:19
 

а точку надо преобразовывать? и другие говно-символы?

Bachan
god's pee

Рег.: 26.10.2002
Сообщений: 37551
Рейтинг: 5335
  Re: как называются ? и * [re: turbozapekanka]
      26.07.2008 13:29
2

code:
. -> \.




я АЭС фачил в эсс!
BorisL
постоянный отец

Рег.: 23.02.2004
Сообщений: 17631
Из: torrent.msu
Рейтинг: 3560
  Re: как называются ? и * [re: Bachan]
      26.07.2008 13:30
10

code:
говно-символ -> \говно-символ

забыл :)

Basilio
GreenOne

Рег.: 14.10.2002
Сообщений: 13749
Из: Москва
Рейтинг: 3476
  Re: как называются ? и * [re: BorisL]
      27.07.2008 18:44
 

список говно-символов прилагается?
\, / - вроде такие..

$ - такой?
& - такой?
<>, [], -?

BorisL
постоянный отец

Рег.: 23.02.2004
Сообщений: 17631
Из: torrent.msu
Рейтинг: 3560
  Re: как называются ? и * [re: Basilio]
      27.07.2008 18:50
1

В ответ на:

список говно-символов прилагается?


первая сцылка в гугле:
В ответ на:

Because we want to do more than simply search for literal pieces of text, we need to reserve certain characters for special use. In the regex flavors discussed in this tutorial, there are 11 characters with special meanings: the opening square bracket [, the backslash \, the caret ^, the dollar sign $, the period or dot ., the vertical bar or pipe symbol |, the question mark ?, the asterisk or star *, the plus sign +, the opening round bracket ( and the closing round bracket ). These special characters are often called "metacharacters".




Sharp
wayfarer

Рег.: 02.12.2004
Сообщений: 1021
Рейтинг: 21
  Re: как называются ? и * [re: turbozapekanka]
      27.07.2008 19:30
-2

Вариант без регекспов
code:
bool PatternMatch(const char *s, const char *mask) { const char *cp = 0; const char *mp = 0; // Съедаем маску и строку до первой *, либо до конца for (; *s && *mask != '*'; mask++, s++) if (*mask != *s && *mask != '?') return 0; for (;;) { // Если строка кончилась, то остаток маски должен состоять только из * if (!*s) { while (*mask == '*') mask++; return !*mask; } // Если маска начинается с *, съедим * и: // - если она ей и кончается, то return true // - иначе запомним, с какой маски и строки начинать, если, исходя из предположения, // что * совпадает с пустой строкой, мы встретим облом if (*mask == '*') { if (!*++mask) return 1; mp = mask; cp = s + 1; continue; } // Съедаем символ в маске и строке, если в маске тот же символ или ? if (*mask == *s || *mask == '?') { mask++, s++; continue; } // Символы в маске и строке не совпадают! // - в случае неудачи в дальнейшем сопоставлении возьмем ту же маску и на 1 короче суффикс mask = mp; s = cp++; } }


turbozapekanka
бот Олеся

Рег.: 16.05.2005
Сообщений: 759
Рейтинг: 368
  Re: как называются ? и * [re: Sharp]
      27.07.2008 20:41
 

сам придумал? тестировал его? или скажи откуда взял




Редактировал turbozapekanka (27.07.2008 21:00)
Fj_
Carpal Tunnel

Рег.: 12.09.2004
Сообщений: 8795
Рейтинг: 3287
  Re: как называются ? и * [re: Sharp]
      27.07.2008 22:04
6

Только в отличие от регексов он у тебя бэктрекается. Поэтому миллион букв "а" он будет сличать с паттерном "*b" несколько часов. А с паттерном "*a*b" - несколько лет. А с паттерном "*a*a*b" - несколько миллионов лет. Это плохо!



The data is the error (c)IIS FTP Server.
Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
3 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в