2013-05-27 4 views
0

일치 작업의 도움으로 작업을 처리/건너 뛰려합니다. 하지만 "false positives"가 발생합니다. false가 반환되어야한다고 생각하면 일치 항목이 true를 반환합니다.
다음 코드가 사용되는 경우 : zipfileName는 AP, MR 및 VAP
이되는 코드의 부재의 결과, zipfileNames가 발생되는 폴더를 통해 루프 파일의 기본 이름을 고려하여 결정된다
개미가 가양 성을 제공합니다.

<property name="moduleList" value="AP|MR"/> 
<echo message="ModuleList is ${moduleList}" /> 
...some for loop here... 
<echo message="Found ${zipFilename}" /> 
<if> 
    <matches pattern="${moduleList}" string="${zipFilename}" /> 
    <then> 
     <echo message="Creating ${zipFilename}" /> 
    </then> 
    <else> 
     <echo message="Skipping ${zipFilename}" /> 
    </else> 
</if> 

을 :

[echo] ModuleList is AP|MR 
[echo] Found AP 
[echo] Creating AP 
[echo] Found MR 
[echo] Creating MR 
[echo] Found VAP 
[echo] Creating VAP 
[echo] Found eFormsPolicy 
[echo] Skipping eFormsPolicy 

그래서 나를에 따라 VAP가 거짓 긍정적이다.
아니면 내 경기에 문제가 있습니까?

AFAIK의 ant.regexp.regexpimpl이 설정되지 않은, 그래서 개미는 VAPAP로 끝나는 때문에 당신이 잘못된 반응을 받고 있다고 할 수 Jdk14Regexp 구현

답변

1

를 사용? 경기 패턴을 ^(${moduleList})$으로 변경하면 어떻게 되나요? 실제로 moduleList가 대체되면 ^(AP|MR)$이되며 VAP과 일치하지 않습니다.

+0

+1 - 이름이 ''인 경우 Matches.find()를 사용하고'matches() '가 아니라'^'와'$'가 필요합니다. 문자열. –

+0

이것은 그 것이었다, 나는 그것이 정규식과 관련이 있다고 의심하지만, 정규식 지식은 그렇게 크지 않다. (@Ian 그것의 행동을 통해 나는 또한 find를 사용하고있는 것으로 의심된다.) – Niek

+0

빈 함정 앞에 하나의 함정이있다. 이제는 아무것도 일치하지 않습니다. 그래서 나는 '을 추가하거나 moduleList를 빈 때'. *'로 채워야했습니다. – Niek

관련 문제