String 使用Delphi在另一个字符串中查找变量字符串
给定一个字段/字符串,如“G,H,1,AA,T,AAA,1,E,a,H,…”。字符可以是任意组合/顺序。 当只搜索“A”或“AA”时,如何搜索该字符串并返回True? i、 e.如果搜索“a”,则只应在e和H之间找到“a”。 问候与TIA,String 使用Delphi在另一个字符串中查找变量字符串,string,delphi,String,Delphi,给定一个字段/字符串,如“G,H,1,AA,T,AAA,1,E,a,H,…”。字符可以是任意组合/顺序。 当只搜索“A”或“AA”时,如何搜索该字符串并返回True? i、 e.如果搜索“a”,则只应在e和H之间找到“a”。 问候与TIA, Ian将此字符串拆分为一个列表,例如使用TStringList.CommaText(或者,使用StrUtils.SplitString()将其拆分为一个数组) 然后,只需浏览列表并检查每个字符串(或者使用TStrings.IndexOf()-注意:它使用区分
Ian将此字符串拆分为一个列表,例如使用
TStringList.CommaText
(或者,使用StrUtils.SplitString()
将其拆分为一个数组)
然后,只需浏览列表并检查每个字符串(或者使用TStrings.IndexOf()
-注意:它使用区分大小写的属性,如Remy在注释中提到的)
如果要对同一个列表进行多次查询,请对其排序并使用有效的二进制搜索(TStringList.Find()
)。将此字符串拆分为一个列表,例如使用TStringList.CommaText
(或者,使用StrUtils.SplitString()
)将其拆分为一个数组
然后,只需浏览列表并检查每个字符串(或者使用TStrings.IndexOf()
-注意:它使用区分大小写的属性,如Remy在注释中提到的)
如果要对同一个列表进行多次查询,请对其排序并使用有效的二进制搜索(TStringList.Find()
)。您只需按分隔符将字符串拆分为一个数组,然后在该数组中搜索,例如
function FindItem(const List, Item: string): Boolean;
var
SArr: TArray<string>;
S: string;
begin
Result := False;
//Separators could also be a parameter
SArr := List.Split([',']);
for S in SArr do
begin
//use S.Trim if needed
//use AnsiSameText(S, Item) for case insensitive check
if Item = S then
Exit(True);
end;
end;
您只需按分隔符将字符串拆分为一个数组,然后在该数组中搜索,例如
function FindItem(const List, Item: string): Boolean;
var
SArr: TArray<string>;
S: string;
begin
Result := False;
//Separators could also be a parameter
SArr := List.Split([',']);
for S in SArr do
begin
//use S.Trim if needed
//use AnsiSameText(S, Item) for case insensitive check
if Item = S then
Exit(True);
end;
end;
非常感谢。谢谢,谢谢。感谢。TStringList
有一个IndexOf()
使用的CaseSensitive
属性。TStringList
有一个IndexOf()
使用的CaseSensitive
属性。
Result := TRegex.IsMatch(List, '\bA\b');