![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ [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 совпадения