Lazarus用于查找字符串

时间:2017-03-15 00:24:57

标签: lazarus

我有电子邮件主题行,我想在其中找到票证参考,它可能是TT ref就像12345678.一个主题行(字符串)可以有多个8位数字!

我一直在使用下面的代码,但它只是剥离前8个数字,然后检查是否为8个字符长:

function StripNumbers(const aString: string): string;
var
  C: char;
begin
  Result := '';
  for C in aString do
  begin
    if CharInSet(C, ['0'..'9']) then
    begin
      Result := Result + C;
    end;
  end;
end;   

示例:

我的字符串变量是

subject := "yada yada XF12345678 blabla XF87654321 duh XF11.223344"

函数GetTTRefs(subject)应该会产生"12345678;87654321;"

感谢您的回答。

1 个答案:

答案 0 :(得分:-2)

function GotTTRefs(Subject:string;Digits:Byte):string;
var
  i:integer;
  TT:string;
begin
   i:=1;
   while i <= Length(Subject)-Digits+1 do
   begin
     if Subject[i] in ['1'..'9'] then
        begin
          TT:=Copy(Subject,i,Digits);
          if (StrToQWordDef(TT, 0) <> 0) then
              Result:=Result+TT+';';
        end;
     inc(i);
   end;
end;