2009-06-09 11 views

답변

5

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; 
+0

정규식은 "// 모든 예외 무시"와 같은 삽입 주석을 허용하도록 변경되어야합니다 - 기술적으로 이것은 여전히 ​​빈 예외 처리자입니다. – mghie

+0

@mghie : 정규식을 //,/* * 및 (* *)와 일치하도록 조정했습니다. 나는 멀리가는 사람들을위한 운동장으로 중첩 된 의견을 남겼습니다. –

+0

좋은 해결책! 그렇습니다. 마지막 GExpert 출시에는 여전히 제한이 있습니다. GExpert가 TPerlRegEx를 사용하여 간단한 정적 코드 분석 작업을 수행 할 수 있다면 매우 흥미로운 기능입니다. (일부 위양성이 있더라도) – mjn

0

가 자동으로 빈 시작/종료 블록으로 일하러 삽입 삽입 자동 도도 (GExperts의 일부가되는, 내가 CodeCentral에서 그것을 가지고 생각)라는 도구가있다. 아마 그게 네가 원하는거야?

+0

분석 도구는 소스를 수정해서는 안되며 '위반 사항'만보고하고 선택적으로 패널티를 제안해야합니다. – mjn