如何在Delphi中检查字符串是否包含子字符串?

del*_*sql 18 delphi delphi-7

String content = "Jane";
String container = 'A.Sven,G.Jane,Jack'; // This is the string which i need to be searched with string content
Run Code Online (Sandbox Code Playgroud)

boolean containerContainsContent = StringUtils.containsIgnoreCase(container, content); // I used to write like this in java

我是Delphi的新手.Delphi中是否有contains命令或执行相同操作的任何其他命令?

Jen*_*olt 36

您可以使用该功能StrUtils德尔福

uses
  StrUtils;
..
    if ContainsText('A.Sven,G.Jane,Jack', 'Jane') then 
    ...
Run Code Online (Sandbox Code Playgroud)

ContainsText返回true如果潜台词被发现,不区分大小写,在给定的文本

StrUtils你还可以找到方便的功能,如StartsText,EndsTextReplaceText

  • Delphi 7中的FWIR ContaintsText(主题入门者提到)仅适用于LATIN-1字符集.如果@delsql想要比较一些国家字符(希腊语,俄语等),他应该使用`AnsiContainsText`代替 (7认同)
  • Pos是casesensetive (3认同)
  • @delsql你正在制造一些乱七八糟的东西.请不要在评论中向答案提出新问题.如果你想要一些与`containsIgnoreCase`不同的东西,那么这将是一个新问题. (3认同)
  • 对于 ContainsText 函数,needle 是第二个参数,而不是第一个参数。对于此示例: if ContainsText('A.Sven,G.Jane,Jack', 'Jane') then (2认同)

小智 6

您可能还会发现以下Contains功能很有帮助。System.SysUtils

uses
  Sysytem.SysUtils;

....
  txt := 'This is a string variable';

  if txt.contains('str') then
....
Run Code Online (Sandbox Code Playgroud)