ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi] "Одноразовое" рег. выражение
  #1  
Старый 30.05.2009, 08:58
Kuzya
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме:
140661

Репутация: 313
По умолчанию [Delphi] "Одноразовое" рег. выражение

Здравствуйте. Столкнулся со следующей проблемой. Мне нужно из текста (ответ на http-запрос) выдернуть все совпадения с выражением
Код:
<li><h3><a href="(.*)"
Использую библиотеку RegExpr (regexpstudio.com) я получил следующий код
Код:
HResult := idHttp1.Get('http://.....');
regexptpl := '<li><h3><a href="(.*)"';
  with TRegExpr.Create do try
     Expression := regexptpl;
     ModifierI := true;
     ModifierS := true;
     ModifierG := false;
     if Exec(HResult) then begin
       showmessage(Match[1]);
     end;
    finally Free;
  end;
Но он находит только первое совпадение из всего текста. Оно помещается ячейку 1 массива Match и всё, остальные ячейки пусты. Но совпадений в полученном тексте должно быть около 10. Помню с подобной проблемой сталкивался в php и решил её с использованием preg_match_all вместо preg_match. Покопавшись по документации к используемой библиотеке я ничего не нашёл. Единственное на что обратил внимание - функция ExecNext. Я думал что при каждом вызове она будет искать следующее совпадение, но она тоже зацикливалась на 1-ом свопадении.
Если кто сталкивался с подобной проблемой, помогите пожалуйста.

Последний раз редактировалось Kuzya; 30.05.2009 в 09:00..
 
Ответить с цитированием

  #2  
Старый 30.05.2009, 09:36
JeDaSe
Познающий
Регистрация: 23.05.2009
Сообщений: 35
Провел на форуме:
104584

Репутация: 32
Отправить сообщение для JeDaSe с помощью ICQ
По умолчанию

а pos(); не проще будет?
http://forum.antichat.ru/thread119447.html

Последний раз редактировалось JeDaSe; 30.05.2009 в 09:42..
 
Ответить с цитированием

  #3  
Старый 30.05.2009, 09:54
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Цитата:
Здравствуйте. Столкнулся со следующей проблемой. Мне нужно из текста (ответ на http-запрос) выдернуть все совпадения с выражением
Код:
<li><h3><a href="(.*)"
Использую библиотеку RegExpr (regexpstudio.com) я получил следующий код
Код:
HResult := idHttp1.Get('http://.....');
regexptpl := '<li><h3><a href="(.*)"';
  with TRegExpr.Create do try
     Expression := regexptpl;
     ModifierI := true;
     ModifierS := true;
     ModifierG := false;
     if Exec(HResult) then begin
       showmessage(Match[1]);
     end;
    finally Free;
  end;
Но он находит только первое совпадение из всего текста. Оно помещается ячейку 1 массива Match и всё, остальные ячейки пусты. Но совпадений в полученном тексте должно быть около 10. Помню с подобной проблемой сталкивался в php и решил её с использованием preg_match_all вместо preg_match. Покопавшись по документации к используемой библиотеке я ничего не нашёл. Единственное на что обратил внимание - функция ExecNext. Я думал что при каждом вызове она будет искать следующее совпадение, но она тоже зацикливалась на 1-ом свопадении.
Если кто сталкивался с подобной проблемой, помогите пожалуйста.
Юзай цикл
Код:
while not ExecNext...
Цитата:
а pos(); не проще будет?
http://forum.antichat.ru/thread119447.html
Регулярки удобнее.
 
Ответить с цитированием

  #4  
Старый 30.05.2009, 13:23
Kuzya
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме:
140661

Репутация: 313
По умолчанию

mailbrush, спасибо!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать главный диск [Delphi] Sin3v С/С++, C#, Delphi, .NET, Asm 7 01.04.2009 11:46
Экранный шпион [Delphi] Amper128 С/С++, C#, Delphi, .NET, Asm 5 24.03.2009 20:11
PP.UA новый украинский домен - рег идет vvs777 Мировые новости 4 17.03.2009 17:51
[Delphi] помогите достать исходники ИИ mrVoodoo С/С++, C#, Delphi, .NET, Asm 1 13.02.2009 20:55
Как запускаются файлы рег через консоль? c0m Windows 1 05.02.2009 20:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ