写个函数: uses StrUtils;function ReversePos(SubStr, S: String): Integer; var i : Integer; begin i := Pos(ReverseString(SubStr), ReverseString(S)); if i > 0 then i := Length(S) - i - Length(SubStr) + 2; Result := i; end; 调用的例子: ShowMessage (IntToStr(ReversePos('abc', 'abc123abc456')));
//功能:子串在主串第几次出现的位置 function PosEx(substring,s:string;times:Integer):Integer; var nCount,nIndex:Integer; begin nCount:=0; while times>0 do begin nIndex:=Pos(substring,s); if nIndex<=0 then break; s:=Copy(s,nIndex+1,Length(s)-nIndex); nCount:=nCount+nIndex; times:=times-1; end; Result:=nCount; end;
var
i : Integer;
begin
i := Pos(ReverseString(SubStr), ReverseString(S));
if i > 0 then i := Length(S) - i - Length(SubStr) + 2;
Result := i;
end;
调用的例子: ShowMessage (IntToStr(ReversePos('abc', 'abc123abc456')));
function PosEx(substring,s:string;times:Integer):Integer;
var
nCount,nIndex:Integer;
begin
nCount:=0;
while times>0 do
begin
nIndex:=Pos(substring,s);
if nIndex<=0 then
break;
s:=Copy(s,nIndex+1,Length(s)-nIndex);
nCount:=nCount+nIndex;
times:=times-1;
end;
Result:=nCount;
end;