Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ [D6]


Anat ©   (2005-08-30 17:47:00) 

Импортировал MS VBScript RegExp 5.5 и получил

VBScript_RegExp_55_tlb.pas

В соде имею

with TRegExp.Create(Self) do
try
Pattern := '<(.*?)>';
IgnoreCase := True;
Global := TRUE;
Multiline := TRUE;
mc := Execute('<p> <o>') as MatchCollection;
for i:=0 to mc.Count-1 do
что-то хочу сделать
finally
mc := nil;
Free;
end;

У меня mc.Count = 1 ( должно быть 2)
? почему


palva   (2005-08-30 20:45:00) [1]

Не используйте with. Видимо, имеются переменные с тем же именем. Следующий код работает, как надо.

{$APPTYPE CONSOLE}
uses
 Variants, ActiveX, ComObj;  
var
 re, mc: OleVariant;
begin
 CoInitialize(Nil);
 re := CreateOleObject('VBScript.RegExp');
 re.Pattern := '<(.*?)>';
 re.IgnoreCase := True;
 re.Global := True;
 re.Multiline := True;
 mc := re.Execute('<p> <o>');
 WriteLn(mc.Count); // 2
 re := Unassigned;
end.


panov   (2005-08-30 18:08:00) [2]

В теме CAPS LOCK залипла?


Digitman   (2005-08-30 17:58:00) [3]

возьми TRegExpr из

http://www.delphipages.com/edit/count.cfm?ID=1216&E=552

и не мучайся - для приведенного тобой случая он выдает ровно 2 совпадения


Наверх

Титульная страница Поиск, карта сайта Написать письмо