我的文档中包含以下格式的行:
"key1", "value1", "trash1"
"key2", "value2"
"key3", "value3", "trash3"
我需要(过滤器)删除行的第三个标记(如果有的话)。
"key1", "value1"
"key2", "value2"
"key3", "value3"
如何使用Apache Ant做到这一点?
注意:Apache Ant不支持正则表达式中的外观。
答案 0 :(得分:1)
您可以匹配三个令牌并替换为组。 使用
进行简单搜索 ("[^"]*?")(, "[^"]*?")(?:, "[^"]*?")?
并替换为\1\2
即可完成任务。
捕获前两组。第三个是非捕获组。
Apache Ant的代码如下:
<replaceregexp file="${src}/build.properties"
match='("[^"]*?")(, "[^"]*?")(?:, "[^"]*?")?'
replace="\1\2"
byline="true"
/>