Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant复制任务:包括额外的行,直到结束“;”?_Ant - Fatal编程技术网

Ant复制任务:包括额外的行,直到结束“;”?

Ant复制任务:包括额外的行,直到结束“;”?,ant,Ant,我有一个see DOWN Ant copy任务,它成功地复制了包含regexp模式中5个元素的所有行,但这些语句以;有时会超过一行,但不包括这些额外的行。他们是否有办法将这些额外的行包括在内,直到结束 <copy file="${updates-dir}/updates.sql" tofile="${updates-dir}/updates_filtered.sql"> <filterchain> <linecontainsregexp>

我有一个see DOWN Ant copy任务,它成功地复制了包含regexp模式中5个元素的所有行,但这些语句以;有时会超过一行,但不包括这些额外的行。他们是否有办法将这些额外的行包括在内,直到结束

<copy file="${updates-dir}/updates.sql"
      tofile="${updates-dir}/updates_filtered.sql">
  <filterchain>
    <linecontainsregexp>
      <regexp pattern="BEGIN;|INSERT INTO|UPDATE|DELETE FROM|COMMIT;"/>
    </linecontainsregexp>
  </filterchain>
</copy>

使用正则表达式解析任意SQL非常困难。在Ant中也没什么不同,但是,如果您的输入足够一致,那么您可能会侥幸逃脱

一种选择可能是通过SQL语句处理输入,即使用分号而不是行尾分隔输入。因此,您所发布内容的变体可能是

<filterchain>
  <tokenfilter>
    <stringtokenizer delims=";"/>
    <containsregex pattern="BEGIN|INSERT INTO|UPDATE|DELETE FROM|COMMIT" />
  </tokenfilter>
</filterchain>
您可以选择从输出中排除分隔符


如果您的输入不是“干净”的,那么使用这样一个简单的过滤器很难满足所有输入的可能性。

您还可以发布一个sql文件的示例来说明您希望Ant做什么以及问题是什么吗?我的答案有用吗?