如何在PDI 9.4社区版中用正则/通配符按条件检索FTP文件
解决PDI 9.4社区版FTP拉取含日期数字(01-31)的.xlsx文件问题
以下是具体操作步骤,直接按流程配置即可:
步骤1:用FTP列表组件获取FTP上的所有.xlsx文件
- 拖拽
FTP列表组件到转换画布,配置好FTP服务器的连接信息(地址、端口、账号密码)。 文件掩码填*.xlsx,先把服务器上所有xlsx文件的列表拉取下来。
步骤2:通过正则表达式评估组件过滤文件名
- 把
FTP列表的输出连接到正则表达式评估组件。 - 正则表达式填:
\b(0[1-9]|[12][0-9]|3[01])\b- 这个规则专门匹配01-09、10-29、30-31这些日期数字,
\b能避免误匹配长数字里的片段(比如不会把"111"里的"11"当成有效日期)。
- 这个规则专门匹配01-09、10-29、30-31这些日期数字,
- 目标字段设为
is_valid,类型选布尔值,匹配成功会返回Y,失败返回N。
步骤3:用过滤行组件留下符合条件的文件
- 连接
正则表达式评估到过滤行组件。 - 设置过滤条件:
is_valid等于Y,只保留匹配成功的文件记录。
步骤4:用FTP获取文件组件拉取目标文件
- 把
过滤行的输出连接到FTP获取文件组件。 - 配置本地保存文件的文件夹路径。
远程文件名选择FTP列表输出的filename字段,这样就能动态拉取筛选后的文件。- 按需勾选
移动源文件或删除源文件,处理拉取后的FTP端文件。
额外提示
- 如果文件名有大小写差异,在
正则表达式评估组件里开启不区分大小写选项。 - 测试阶段可以在
正则表达式评估后加个文本文件输出组件,先看匹配结果是否符合预期,再执行拉取操作。
内容的提问来源于stack exchange,提问作者ODM
相关产品推荐
相关产品推荐

