Hallo!
Ich habe einen String
'3d 12h'
(3 Tage, 12 Stunden), der eine Zeitspanne repräsentiert. Ich möchte mit TRegEx.Matches prüfen, ob der String das korrekte Format hat und gleichzeitig die beiden numerischen Teile extrahieren. Die Expression
'^([0-9]{1,})d ([0-9]{1,2})h$'
sollte eigentlich genau das tun laut Testtool (Bild 1). Mit dem folgenden Code kommt in Delphi aber was anderes heraus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
X = '3d 12h';
var
Matches: TMatchCollection;
begin
Matches := TRegEx.Matches(X, '^([0-9]{1,})d ([0-9]{1,2})h$');
end;
Zwar matcht die Expression wie gedacht und bringt auch drei Groups, jedoch enthalten alle drei Groups den identischen String
'3d 12h'
(siehe Bild 2). Wo ist da jetzt der Denkfehler?
Grüße
Cody