Stimmt, du hast recht. Der Denkfehler war, dass TRegEx.Matches den Inputstring gleich zerlegt und im Speicher ablegt. Aber das passiert erst wenn man durchiteriert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
X = '3d 12h';
var
Matches: TMatchCollection;
Match: TMatch;
Group: TGroup;
V: string;
begin
Matches := TRegEx.Matches(X, '^([0-9]{1,})d ([0-9]{1,})h$');
for Match in Matches do begin
for Group in Match.Groups do begin
V := Group.Value; // 1. Durchlauf = '3d 12h' 2. Durchlauf = '3' 3. Durchlauf = '12'
end;
end;
end;