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

标签 delphi pattern-matching delphi-xe

我曾经使用 HYPERSTR 库进行字符串处理例程。现在我使用较新的Delphi。我需要搜索字符串中的模式,例如旧函数是 function 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 时我也得到了相同的结果.

谢谢。

最佳答案

正则表达式语法不同。 ?和*有不同的含义。请参阅http://www.regular-expressions.info/tutorial.html对正则表达式的精彩介绍。 您可以使用类似 abcd[a-z]f 或 abcd\wf 的语法,甚至其他语法,具体取决于您想要匹配的内容。

关于delphi - 在 Delphi 中使用通配符搜索字符串中的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5989478/

相关文章:

security - Google Chrome 认为 Delphi 应用程序为 'dangerous'

functional-programming - 详尽的模式

Delphi:我应该使用重载,重新引入+重载还是不使用?

delphi - 编写属性编辑器 - 我需要一些指导

delphi - 获取泛型类中重载方法的未使用提示

delphi - 哪些属性决定 ClientDataSet 字段大小?

algorithm - 我们如何从 LCP 阵列构建 LCP-LR 阵列?

java - Android正则表达式从网站抓取图像url

delphi - 我需要 TThreads 吗?如果可以,我可以暂停、恢复和停止它们吗?

delphi - 发送 ASCII 而不是字符串