[软件设计/软件工程] TStringList.IndexOf:IndexOf中的通配符?

[复制链接]
发表于 2022-5-6 13:03:19
问题
我想检索字符串列表中的行号(从文件加载)。

Indexof 似乎完全匹配。有没有办法使用 Indexof 的通配符版本检索行?像 SL.Indexof('? what literal')?

谢谢!

回答
如果您想匹配字符串的某个部分,而不需要任何花哨的通配符(如另一个答案的评论中所示),您可以使用如下简单的函数:
  1. function FindMatchStr(Strings: TStrings; const SubStr: string): Integer;
  2. begin   
  3.   for Result := 0 to Strings.Count-1 do
  4.     if ContainsStr(Strings[Result], SubStr) then
  5.       exit;
  6.   Result := -1;
  7. end;
复制代码

如果需要不区分大小写的匹配,可以使用以下命令:
  1. function FindMatchText(Strings: TStrings; const SubStr: string): Integer;
  2. begin   
  3.   for Result := 0 to Strings.Count-1 do
  4.     if ContainsText(Strings[Result], SubStr) then
  5.       exit;
  6.   Result := -1;
  7. end;
复制代码

ContainsStr 和 ContainsText 在 StrUtils RTL 单元中定义,遵循标准约定 Str 表示区分大小写的比较,Text 表示不区分大小写。





上一篇:C++与gdB调试/打印自定义类型:以NLHMANN JSON库为例
下一篇:Git bash 和 Git GUI 不适用于 Windows 10

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表