0

我正在尝试在 match 任务的帮助下处理/跳过任务。但我得到“误报”,当我认为它应该返回假时,匹配返回真。
正在使用以下代码:

<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 实现

4

1 回答 1

1

VAP会不会是因为以 结尾而得到误报AP?如果您将匹配模式更改为^(${moduleList})$怎么办?当 moduleList 实际被替换时,它会变成^(AP|MR)$,这不会匹配VAP

于 2013-05-27T15:12:51.000 回答