在新版本的GExperts中,grep實用程序現在支持更多'專家'表達式。如何找到所有空的嘗試...除了GExperts grep塊?
我還沒有找到一種方法來找到空的嘗試...除了在使用正則表達式的Delphi源代碼塊,我怎麼能用GExperts grep工具來做到這一點?
在新版本的GExperts中,grep實用程序現在支持更多'專家'表達式。如何找到所有空的嘗試...除了GExperts grep塊?
我還沒有找到一種方法來找到空的嘗試...除了在使用正則表達式的Delphi源代碼塊,我怎麼能用GExperts grep工具來做到這一點?
我懷疑GExperts正則表達式的功能允許您搜索超出行分隔符。
如果您不介意使用像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;
有一個叫插入汽車的Todo(這是不是GExperts的一部分,我想我從CodeCentral得到它)工具,可自動插入到待辦事項空開始/結束塊。也許這就是你想要的?
正則表達式應改爲允許嵌入註釋,如「//忽略所有異常」 - 從技術上講,這仍然是一個空的異常處理程序。 – mghie 2009-06-09 11:46:45
@mghie:我調整了正則表達式以匹配//,/ * * /和(* *)。對於那些想要走得那麼遠的人,我留下了嵌套評論作爲練習。 – 2009-06-09 12:49:29