Delphi StrUtils.PosEx - 返回子字符串的索引值,从指定位置开始。

Delphi StrUtils.PosEx -  返回子字符串的索引值,从指定位置开始。

源码(PosEx):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
var
  I,X: Integer;
  Len, LenSubStr: Integer;
begin
  if Offset = 1 then
    Result := Pos(SubStr, S)
  else
  begin
    I := Offset;
    LenSubStr := Length(SubStr);
    Len := Length(S) - LenSubStr + 1;
    while I <= Len do
    begin
      if S[I] = SubStr[1] then
      begin
        X := 1;
        while (X < LenSubStr) and (S[I + X] = SubStr[X + 1]) do
          Inc(X);
        if (X = LenSubStr) then
        begin
          Result := I;
          exit;
        end;
      end;
      Inc(I);
    end;
    Result := 0;
  end;
end;

说明:

  • PosEx返回S中SubStr的索引,开始在偏移处搜索。如果偏移量为1(默认),PosEx 相当于 Pos 函数。
  • 如果找不到子字符串、偏移大于S长度或偏移小于1,则PosEx返回0。

  

示例:

1
2
3
4
5
6
7
8
9
10
//从第几个字符开始,搜索字串的位置 PosEx
var
  ss,s: string;
  i: Integer;
begin
  ss := 'Hello Delphi7';
  s := 'llo';
  i := PosEx(s,ss,2);
  ShowMessage(IntToStr(i));  //3
end;

 

延伸:查看Pos函数 

 

 

创建时间:2021.05.06  更新时间: 

posted on   滔Roy  阅读(1025)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
历史上的今天:
2020-05-06 生成FTP快捷键,通过资源管理器打开的方法

导航

点击右上角即可分享
微信分享提示