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;