【问题标题】:Talend - Exclude files withe a specific maskTalend - 排除具有特定掩码的文件
【发布时间】:2016-07-03 13:07:23
【问题描述】:

我从 FTP 服务器恢复具有以下名称的平面文件:

  • abc
  • abc.flag
  • abc.tmp
  • 测试
  • test.flag
  • test.tmp

就我而言,我只需要恢复文件:abctest。 我尝试使用以下掩码,但它不起作用: "(.+\.tmp)| (. + \.flag) " 还有其他方法吗?

【问题讨论】:

  • 为什么不使用 (abc)|(test) ?

标签: java regex etl talend


【解决方案1】:

找不到可以选择除 .tmp 和 .flag 文件之外的所有文件的表达式,但这里有一个 example 来选择它们,它使用 .+(?:flag|tmp)$

更新

假设允许负前瞻,请参阅此example,它只选择非 .tmp 和 .flag 文件,它使用

^.+\.(?!flag|tmp).+$|^\w+$

【讨论】:

  • 不,我只想排除扩展名为 .tmp 和 .flag 的文件
  • 更新了我的答案,假设您可以将它们与 .flag 和 .tmp 匹配并自己排除它们。您是否也考虑过getting the file extension 并过滤掉您不想要的?
  • 不,看到在 TalendOS 中有一个 tFTPListe,我只给出了我想要恢复的文件的掩码,这个掩码在正则表达式中
  • 这个掩码现在工作正常"[abc]"+"+([^.flag]|[^.tmp])" 我得到的文件 abc 没有扩展名 .flag 或 .tmp
  • 再次更新了我的答案,这次是用一个选择你想要的文件的表达式。查看您评论的[^.flag],意味着您不想要任何具有.fag 的文件。换句话说,如果文件扩展名是.glaf,它也不会被选中。同样的情况发生在[^.tmp]。你确定这是你需要的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多