如何在delphi中找到两个开始字符串和结束字符串之间的字符串?

如何在delphi中找到两个开始字符串和结束字符串之间的字符串?,delphi,Delphi,可能重复: 如何在Delphi中找到两个开始字符串和结束字符串之间的字符串如果您对一个简单的解决方案感到满意,请查看以下内容: 如果您想对代码进行分析,您实际上需要一个能够理解注释、条件编译和所有其他预编译器选项的完整语言解析器。如果您对一个简单的解决方案感到满意,请查看以下内容: uses StrUtils; ... const sBegin = 'begin'; sEnd = 'end'; var i1, i2: Integer; sSubstr: String; ..

可能重复:


如何在Delphi中找到两个开始字符串和结束字符串之间的字符串如果您对一个简单的解决方案感到满意,请查看以下内容:


如果您想对代码进行分析,您实际上需要一个能够理解注释、条件编译和所有其他预编译器选项的完整语言解析器。

如果您对一个简单的解决方案感到满意,请查看以下内容:

uses
  StrUtils;
...
const
  sBegin = 'begin';
  sEnd = 'end';
var
  i1, i2: Integer;
  sSubstr: String;
...
  i1 := Pos(sBegin, s);
  if i > 0 then begin
    i2 := PosEx(sEnd, s, i1 + Length(sBegin));
    if i2 > 0 then begin
      sSubstr := Copy(s, i1 + Length(sBegin), i2 - (i1 + Length(sBegin)));
      // process the delimited substring
    end;
  end;
如果您想进行代码分析,实际上需要一个能够理解注释、条件编译和所有其他预编译器选项的完整语言解析器

uses
  StrUtils;
...
const
  sBegin = 'begin';
  sEnd = 'end';
var
  i1, i2: Integer;
  sSubstr: String;
...
  i1 := Pos(sBegin, s);
  if i > 0 then begin
    i2 := PosEx(sEnd, s, i1 + Length(sBegin));
    if i2 > 0 then begin
      sSubstr := Copy(s, i1 + Length(sBegin), i2 - (i1 + Length(sBegin)));
      // process the delimited substring
    end;
  end;
注:

上述代码未经验证。 正则表达式也可以执行类似操作,但C/C++sscanf也有一些限制。 注:

上述代码未经验证。 正则表达式也可以执行类似操作,但C/C++sscanf也有一些限制。 去

复制函数,并按如下方式调用它:

`ExtractText('Hi my name is$John and I''m happy/today','$','/')`;
它将返回“约翰和我很高兴”

例如:

ShowMessage(ExtractText('Hello,World!', ',' ,'!'));
它将在弹出窗口中显示“世界”。

转到

复制函数,并按如下方式调用它:

`ExtractText('Hi my name is$John and I''m happy/today','$','/')`;
它将返回“约翰和我很高兴”

例如:

ShowMessage(ExtractText('Hello,World!', ',' ,'!'));

它将在弹出窗口中显示“World”。

函数ExtractTextconst Str:string;常量Delim1,Delim2:char:string;如何使用此功能?需要样本您将分隔符的类型从char更改为string,您可以这样调用它:`ExtractText'your text','begin','end';但你可能想告诉我们你到底需要这个做什么。正如我在回答中提到的,如果这两个分隔符begin和end是实际代码的一部分,那么这种简单的解决方案是不够的;常量Delim1,Delim2:char:string;如何使用此功能?需要样本您将分隔符的类型从char更改为string,您可以这样调用它:`ExtractText'your text','begin','end';但你可能想告诉我们你到底需要这个做什么。正如我在回答中提到的,如果这两个分隔符开始和结束是实际代码的一部分,那么这种简单的解决方案是不够的。