Ursprungligen inskrivet av Cure
Ok.. Nu vet jag att jag har vunnit
Linjär tidskomplexitet samt klarar dubletter:
function GetNumbers(s:string; i:integer=1; j:boolean=false):string;
begin
if i<=Length(s) then
Result := IfThen(s[i] in ['0'..'9'],s[i],IfThen(j,#13#10))+GetNumbers(s,i+1,s[i] in ['0'..'9']);
end;
Funktionen startas med ex. Memo2.Text := GetNumbers(Memo1.Text);
Uniten StrUtils krävs.
Edit: Skrev om den så man kan välja in-sträng.
Edit2: Rensade upp lite.
Edit3: Måste tillägga, iom att det är en rekursiv funktion så fungerar den inte på större texter iom att stacken fylls på nolltid.