//从后面开始截取的方法,只读出最后一个'ab' + n个空格 + 'cde'
function Getabcde(Source: string): string;
var
b, e, Len: Integer;
begin
Result := '';
b := 0;
e := 0;
Len := Length(Source);
while Len > 0 do
begin
if e > 0 then
begin
if (Source[Len] = ' ') then
Dec(Len)
else if (Copy(Source, Len - 1, 2) = 'ab') and (e - Len > 3) then
begin
b := Len - 1;
Result := Copy(Source, b, e - b + 1);
Break;
end
else e := 0;
end
else if Copy(Source, Len - 2, 3) = 'cde' then
begin
e := Len;
Dec(Len, 3);
end
else Dec(Len);
end;
end;