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

时间:2017-03-31 12:38:19

标签: regex ant

我的文档中包含以下格式的行:

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

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

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

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

  

注意:Apache Ant不支持正则表达式中的外观。

1 个答案:

答案 0 :(得分:1)

您可以匹配三个令牌并替换为组。 使用

进行简单搜索

("[^"]*?")(, "[^"]*?")(?:, "[^"]*?")?并替换为\1\2即可完成任务。

捕获前两组。第三个是非捕获组。

Regex101 Demo

Apache Ant的代码如下:

<replaceregexp file="${src}/build.properties"
           match='("[^"]*?")(, "[^"]*?")(?:, "[^"]*?")?'
           replace="\1\2"
           byline="true"
/>