我要得到 一个子字符串在主字符串中最后出现的位置!
example:   weij(tjj)safdjsdf(tjj)asdf(tjj)
          tjj出现了三次.我要得到最后一个字符串tjj 怎么实现?求教.

解决方案 »

  1.   

    把被搜串和搜索串都转向,再用pos得到位置,再用length减去.例如:
    Length(s)-pos(ReverseString(s1),ReverseString(s))+Length(s1)
      

  2.   

    反序不大好,如果有5次出现,要得到第3,第4次呢?我觉得就是POS,POS到一次就累加一次POS次数。同时把该位置替换为其他字符串,然后继续循环,当POS次数达到要求次数时POS得到的位置就是所求
      

  3.   

    字符串不是有长度吗?循环对字符串POS不就行了
      

  4.   

    用PosEx来循环:uses StrUtils;function LastPos(SubStr:string; S:string):integer;
    var i:integer;
    begin
      Result:=0;
      for i:=Length(s) downto 1 do
        begin
          Result:=PosEx(SubStr,S,i);
          if Result<>0 then break;
        end;
    end;