Der obige Regex braucht hier nicht mal eine Sekunde (Das Schreiben ins Memo dauert aber ein paar Sekunden):
Delphi-Quellcode:
var
M: IMatchCollection;
N: TStringList;
i: Integer;
begin
N := TStringList.Create;
with TStringList.Create do
try
LoadFromFile('ips.txt');
with RegExCreate('(\d{1,3}(?>\.)){3}(?>\d{1,3})') do
begin
M := Matches(Text);
for i := 0 to M.Count - 1 do
N.Add(M.Items[i].Value)
end;
Memo1.Lines.Assign(N);
finally
Free;
N.Free;
end;
Hast Du nicht so etwas wie eines "Matches" Funktion bei TPerlRegEx, die alle Resultate auf einmal liefert?
Viele Grüße