应用场景
有时候会遇到在一个字符串中删除某些特定的字符,这里提供了3个函数,可以满足各种不一样的需求。
函数代码
//删除特定字符串,如果重复出现,只删除第一个
function DelStr(const Needle, Haystack: string): string;
var
StartIdx: Integer;
begin
Result := Haystack;
StartIdx := AnsiPos(Needle, Result);
if StartIdx > 0 then
Delete(Result, StartIdx, Length(Needle));
end;
//删除特定字符串,全部删除,区分大小写
function DelAllStr(const Needle, Haystack: string): string;
var
StartIdx: Integer;
begin
Result := Haystack;
StartIdx := AnsiPos(Needle, Result);
while StartIdx > 0 do
begin
Delete(Result, StartIdx, Length(Needle));
StartIdx := AnsiPos(Needle, Result);
end;
end;
//删除特定字符串,全部删除,不区分大小写,删除范围更广
function DelAllText(const Needle, Haystack: string): string;
var
StartIdx: Integer;
LowerNeedle: string;
begin
Result := Haystack;
LowerNeedle := AnsiLowerCase(Needle);
StartIdx := AnsiPos(LowerNeedle, AnsiLowerCase(Result));
while StartIdx > 0 do
begin
Delete(Result, StartIdx, Length(Needle));
StartIdx := AnsiPos(LowerNeedle, AnsiLowerCase(Result));
end;
end;