每行 2 或 3 个标记的 Ant 过滤器标记化

Ant filter tokenize with 2 or 3 tokens per line

我有一个文档,其中的行遵循以下模式:

"key1", "value1", "trash1"
"key2", "value2"
"key3", "value3", "trash3"

我需要(过滤器)删除一行的第三个标记,如果有的话。

"key1", "value1"
"key2", "value2"
"key3", "value3"

我如何使用 Apache Ant 做到这一点?

Note: Apache Ant does not support lookarounds in regular expressions.

您可以匹配三个标记并替换为组。 使用

进行简单搜索

("[^"]*?")(, "[^"]*?")(?:, "[^"]*?")? 并替换为 </code> 即可。</p> <p>捕获前两组。第三个是非捕获组。</p> <p><a href="https://regex101.com/r/IHodgn/1/" rel="nofollow noreferrer">Regex101 Demo</a></p> <p>Apache Ant 的代码如下:</p> <pre><code><replaceregexp file="${src}/build.properties" match='("[^"]*?")(, "[^"]*?")(?:, "[^"]*?")?' replace="" byline="true" />