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