Lazarus 函数在字符串中查找 8 位数字
Lazarus function to find 8 digit numbers in a string
我有电子邮件主题行,我想在其中找到机票参考,TT 参考可能是 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;"
感谢您的回答。
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;
我有电子邮件主题行,我想在其中找到机票参考,TT 参考可能是 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;"
感谢您的回答。
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;