GExperts的新版本中,grep实用程序现在支持更多的“专家”表达式。

除了使用正则表达式的Delphi源代码中的块之外,我还没有找到找到空try ...的方法,我该如何使用GExperts grep工具来做到这一点?

最佳答案

我怀疑GExperts Regex功能是否可以搜索行分隔符之外的内容。

如果您不介意使用TPerlRegEx之类的组件,则以下代码应使您开始进行自己的搜索。

var
  emptyExceptBlock: TPerlRegEx;
  Results: TStringList;

emptyExceptBlock := TPerlRegEx.Create(nil);
emptyExceptBlock.RegEx := except\s+((//.*|/\*.*\*/|\(\*.*\*\))\s+)*end;
emptyExceptBlock.Options := [preExtended];
emptyExceptBlock.Subject := LoadFromFile('YourFile.pas');
Results := TStringList.Create;
if emptyExceptBlock.Match then begin
    repeat
        Results.Add(emptyExceptBlock.MatchedExpression);
    until not emptyExceptBlock.MatchAgain;
end;

10-04 18:10