在Delphi中使用通配符搜索字符串中的模式?

我曾经使用HYPERSTR库进行字符串处理例程.现在我使用更新的Delphi.我需要在字符串中搜索模式,例如旧函数是函数IsMatchEx(const Source,Search:AnsiString; var Start:integer):Integer;.实际上我不需要结果值,我只想知道模式是否与字符串匹配.

我的旧代码(返回TRUE):

var
  StartPos: integer;
  FoundPos: integer;
begin
  StartPos := 1;
  FoundPos := IsMatchEx('abcdef', 'abcd?f', StartPos);
  if FoundPos > 0 then
    showmessage('match');
end;

我看到Delphi XE有TRegEx但我仍然不明白使用它.

这些代码不返回TRUE:

  if TRegEx.IsMatch('abcdef', 'abcd?f') then
    showmessage('match');

使用MatchesMask时,我也得到了相同的结果.

谢谢.

最佳答案
如果?代表一个字符:

  if TRegEx.IsMatch('abcdef', 'abcd.f') then
    showmessage('match');

如果?代表任何刺痛:

  if TRegEx.IsMatch('abcdef', 'abcd.*f') then
    showmessage('match');

没有XE所以没有测试过.

转载注明原文:在Delphi中使用通配符搜索字符串中的模式? - 代码日志