2009-06-09 57 views

回答

5

我懷疑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; 
+0

正則表達式應改爲允許嵌入註釋,如「//忽略所有異常」 - 從技術上講,這仍然是一個空的異常處理程序。 – mghie 2009-06-09 11:46:45

+0

@mghie:我調整了正則表達式以匹配//,/ * * /和(* *)。對於那些想要走得那麼遠的人,我留下了嵌套評論作爲練習。 – 2009-06-09 12:49:29

0

有一個叫插入汽車的Todo(這是不是GExperts的一部分,我想我從CodeCentral得到它)工具,可自動插入到待辦事項空開始/結束塊。也許這就是你想要的?