TStringList.IndexOf:indexof中的通配符?

问题描述

| 我想检索字符串列表中的行号(从文件中加载)。 Indexof似乎完全匹配。有没有办法使用Indexof的通配符版本来检索行?像SL.Indexof(\'?sometext \')之类的东西? 谢谢!     

解决方法

        如果要匹配字符串的某些部分而没有任何花哨的通配符(如在对另一个答案的注释中所示),则可以使用以下简单函数:
function FindMatchStr(Strings: TStrings; const SubStr: string): Integer;
begin    
  for Result := 0 to Strings.Count-1 do
    if ContainsStr(Strings[Result],SubStr) then
      exit;
  Result := -1;
end;
如果要区分大小写的匹配,则可以使用以下命令:
function FindMatchText(Strings: TStrings; const SubStr: string): Integer;
begin    
  for Result := 0 to Strings.Count-1 do
    if ContainsText(Strings[Result],SubStr) then
      exit;
  Result := -1;
end;
ContainsStr
ContainsText
StrUtils
RTL单元中定义,并遵循convention5 convention的标准约定表示区分大小写,而indicate6ѭ表示不区分大小写。     ,        没有内置的方法可在
TStringList
中搜索通配符。您需要将第三方库(例如TPerlRegEx)用于正则表达式。