我想写一个函数来提取两个标签之间的字符串。 问题是第一个标记在该字符串中是重复的,并且计数未知德尔福 - 提取标签之间的字符串(重复标签)
Str := 'Delphi App Hello Hello SomeText here Hello Hello Hello This is a Test!';
我要的究竟是提取你好这是一个测试!
- TagF是最后你好字
- TAGL是测试!
TagF它的随机重复计数。
Function sExtractBetweenTagsB(Const s, LastTag, FirstTag: string): string;
var
i, f : integer;
sTemp : string;
begin
sTemp := s;
repeat
Delete(sTemp,Pos(FirstTag, sTemp),length(FirstTag));
until AnsiPos(FirstTag,sTemp) = 0;
f := Pos(LastTag, sTemp);
Result:= FirstTag+' '+Copy(sTemp, 1, length(sTemp));
end;
输出是:
Hello Delphi App SomeText here This is a Test!
尝试'LastDelimiter'功能 – MBo
@Mbo:虽然方便,我宁愿用'PosEx'停留在32位,因为它具有同时'LastDelimiter一个Fastcode优化'没有。 – whosrdaddy