2011-05-10 2 views
0

여기에 문제가 있습니다. 버그 추적 시스템에서 버그 첨부 파일을 쿼리하는 소프트웨어를 작성 중입니다. 텍스트 첨부 (일반/텍스트 등) 만 받아서 쿼리를 필터링 할 수 있고 유효 패치 파일 (소스 파일에 패치로 적용 할 수있는 유사한 diff -u 출력이있는 파일) 만 보존하려고합니다. 그래서 어떤 첨부 파일이 유효한 패치인지를 지정하는 방법이 필요합니다..patch 파일 확인

하자 나는 다음과 같은 내용이 첨부 파일이 있다고 가정 : 예를 들어

지수 : 컴파일러/CPP/SRC/생성/t_csharp_generator.cc

--- 컴파일러/CPP/SRC/생성/t_csharp_generator.cc (개정판 1033689) +++ 컴파일러/cpp/src/generate/t_csharp_generator.cc (작업 카피) @@ -456,7 +456,7 @@ t = ((t_typedef *) t) - > get_type(); } if ((* m_iter) -> get_value()! = NULL) { - 출력 _ 값 (out, "this."+ (* m_iter) -> get_name(), t, (* m_iter) -> get_value), 진짜 진짜);print_const_value (out, "this._"+ (* m_iter) -> get_name(), t, (* m_iter) -> get_value(), true, true); } }

유효한 패치인지 어떻게 알 수 있습니까? 나는 자바에서이 같은 것을 쓸 수 있도록 몇 가지 가능한 DIFF -u 출력과 일치하는 정규 표현식 있습니까 :

문자열 attachmentContent = ..... 는 경우 (attachmentContent.matches (정규식)) ...

미리 감사드립니다. Elvis

답변

0

간단한 Regex 또는 복잡한 방법으로는 테스트 할 수 없으며, @@ as 사이의 부분을 해석 할 수있는 정규 표현식 엔진이 필요합니다. 숫자, 반복 횟수를 정의한다면, 나는 그것을하는 RE 엔진을 모른다.

한편, 라이브러리 파싱 및 Unix 패치로드 문제를 너무 많이 겪어서는 안되며, 단순히 패치를로드하려고하면 유효성을 검사 할 수 있습니다. 예 : Java diff utils이 바로 그 일을해야합니다.