2011-11-28 5 views
0

발견 된 경우 나, 다른 사람 사이에 포함 된 소스 코드 파일이 LoadFile과 같은 지시어를 사용하여 속성을 설정하여 다음 줄 :ANT : 특정 멀티 라인 패턴이

public boolean isBetaVersion() { 
     return true; 
    } 

나는 ANT에서이 파일을 읽고 설정하려고

<loadfile srcfile="path/to/MyFile.java" property="isBetaBuild"> 
    <filterchain> 
     <striplinebreaks/> 
     <linecontainsregexp> 
      <regexp pattern=".*\sisBetaVersion()\s\{\sreturn\strue.*"/> 
     </linecontainsregexp> 
    </filterchain> 
</loadfile> 

하지만 일치하지가 (불행하게도, 내가 완전한 정규식 - 멍청한 놈이야) : 위의 방법은 true 또는 뭔가를 반환 여부에 따라 속성입니다. 누구든지 무엇이 잘못 될 수 있는지 생각하고 있습니까? 미리 감사드립니다.

답변

1

괄호를 이스케이프 처리하고 하나 이상의 공백 문자를 허용해야합니다. 그런 다음 \b 앵커를 사용하여 단어의 시작과 끝을 일치시킬 수 있습니다. 난 당신이 시도 제안 :

<regexp pattern="\bisBetaVersion\(\)\s+\{\s+return\s+true\b"/> 

당신은 그냥 문자열이 곳의 소스 코드에 포함되어 있는지 여부를 찾고 있기 때문에 당신은 정규식 주위 .* 필요하지 않습니다.