如何使用 GExperts grep 找到所有空的 try ... except 块?

发布于 2024-07-23 22:57:14 字数 202 浏览 2 评论 0原文

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

我还没有找到一种方法来使用正则表达式来定位 Delphi 源中的空 try ... except 块,我如何使用 GExperts grep 工具来做到这一点?

In new versions of GExperts, the grep utility now supports more 'expert' expressions.

I have not yet found a way to locate empty try ... except blocks in Delphi sources using regular expressions, how could I do this with the GExperts grep tool?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

远昼 2024-07-30 22:57:14

我怀疑 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;

I doubt that GExperts Regex functionality allows you to search beyond line delimiters.

If you don't mind using a component like TPerlRegEx, following code should get you started to roll your own search.

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;
贪了杯 2024-07-30 22:57:14

有一个名为“插入自动待办事项”的工具(它不是 GExperts 的一部分,我想我是从 CodeCentral 获得的),它可以自动将待办事项插入到空的开始/结束块中。 也许这就是你想要的?

There is a tool called Insert Auto Todo (which is not part of GExperts, I think I got it from CodeCentral) that automatically inserts todos into empty begin/end blocks. Maybe that's what you want?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文