我试图在匹配任务的帮助下处理/跳过任务。
但是我得到了“误报”,当我认为它应该返回假时,匹配返回true
正在使用以下代码:
<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>
zipfileName是通过循环访问文件夹并获取文件的基本名称来确定的,遇到的zipfileNames是AP,MR和VAP
这段代码的结果是:
[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,因此ant正在使用Jdk14Regexp实现
答案 0 :(得分:1)
因为VAP
以AP
结尾,你是否会得到误报?如果您将匹配模式更改为^(${moduleList})$
怎么办?实际替换moduleList时,它将变为^(AP|MR)$
,与VAP
不匹配。