先贴代码如下: var s : string; i : Integer; i_lastPosition_number : Integer; i_lastPosition_char : Integer; begin s := '1234abc567....'; //...代表后面还可以有很多字符 i_lastPosition_number := 0; i_lastPosition_char := 0; for i:=1 to Length(s) do begin if s[i] in ['1'..'9'] then i_lastPosition_number := i; //get position of 7 end; s := Copy(s,1,i_lastPosition_number); for i:=1 to Length(s) do begin if s[i] in ['a'..'z'] then i_lastPosition_char := i; //get position of 7 end; Delete(s,1,i_lastPosition_char); ShowMessage(s); end;思路:1.先找到最后一个数字的位置,然会删除后面的字符串;//得到'1234abc567' 2.其次找到删除后的最后一个字符的位置即c的位置 3.删除开始到c的位置的字符串,即可得到‘567’.
从后面向前取var i:integer; tmps,s:string; begin s:='1234abc567def891ewf'; for i:=Length(s) downto 1 do begin if s[i] in ['0'..'9'] then tmps:=s[i]+tmps else if tmps<>'' then break; end; showmessage(tmps); //891 end;
是的话,可以用copy函数
var
s : string;
i : Integer;
i_lastPosition_number : Integer;
i_lastPosition_char : Integer;
begin
s := '1234abc567....'; //...代表后面还可以有很多字符
i_lastPosition_number := 0;
i_lastPosition_char := 0;
for i:=1 to Length(s) do
begin
if s[i] in ['1'..'9'] then
i_lastPosition_number := i; //get position of 7
end;
s := Copy(s,1,i_lastPosition_number);
for i:=1 to Length(s) do
begin
if s[i] in ['a'..'z'] then
i_lastPosition_char := i; //get position of 7
end;
Delete(s,1,i_lastPosition_char);
ShowMessage(s);
end;思路:1.先找到最后一个数字的位置,然会删除后面的字符串;//得到'1234abc567'
2.其次找到删除后的最后一个字符的位置即c的位置
3.删除开始到c的位置的字符串,即可得到‘567’.
i:integer;
tmps,s:string;
begin
s:='1234abc567def891ewf';
for i:=Length(s) downto 1 do
begin
if s[i] in ['0'..'9'] then
tmps:=s[i]+tmps
else if tmps<>'' then
break;
end;
showmessage(tmps); //891
end;