假如有如下字符
 1234234234qwerwer45-5678werwe23423-0seqwerwer 然后搜寻倒数第一个 - 注意是倒着数 然后过滤掉后面的内容(包括倒数第一个-)然后结果如下
 1234234234qwerwer45-5678werwe23423求助各位 谢谢了

解决方案 »

  1.   

    procedure TForm1.Button3Click(Sender: TObject);
    begin
      Caption := NewString('1234234234qwerwer45-5678werwe23423-0seqwerwer');
    end;function TForm1.NewString(const AStr: String): String;
    var
      s: String;
      i: Integer;
    begin
      Result := AStr;
      s := ReverseString(AStr);
      i := Pos('-',s);
      if i <= 0 then Exit;
      Result := ReverseString(Copy(s,i + 1,Length(s) - i));
    end;
      

  2.   

    楼上好方法。把Pos改用PosEx也可以:uses StrUtils;var
      S1, S2 : string;
      I, J : integer;
    begin
      S1 := '1234234-234qw-erwer45-5678werwe23423-0seqwerwer';
      I := 0;
      J := 1;
      while J <> 0 do begin
        I := PosEx('-', S1, I+1);
        if I = 0 then Break;
        J := I;
      end;
      S2 := Copy(S1, 1, J-1);
      Showmessage(S2);
    end;//PS:楼主的昵称我很眼熟,姓王对吗?