是这样的
有一串值,有数字也有非数字
例如:1234abc5678
这串值是不固定的,有可能abc1234,1234abc567def891这样
我想取出最后的一串数字也就是1234abc5678的5678
请教各位大大该如何作呢!感谢万分

解决方案 »

  1.   

    你意思是不是取最后四个字符?
    是的话,可以用copy函数
      

  2.   

    先贴代码如下:
    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’.
      

  3.   

    从后面向前取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;