You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何取反正则表达式^(.(?<!_all_|_team_))*?$?PDI ETL文件名匹配需求

正确匹配包含_all_或_team_(不区分大小写)文件名的正则表达式

首先直接给你能解决问题的正则方案,再拆解为什么你之前的写法行不通:

解决方案

在PDI中,你可以使用以下正则表达式来匹配任意位置包含_all_或_team_(字母不区分大小写)的文件名:

^.*(?i)(_all_|_team_).*$

如果你已经在PDI对应步骤的设置里勾选了不区分大小写选项(比如「文本文件输入」「获取文件名」这类步骤都有这个开关),还可以简化成更简洁的版本:

^.*(_all_|_team_).*$

使用提示

把上述正则填入PDI步骤的「文件名正则表达式」输入框即可,比如在「文本文件输入」步骤中,就能自动筛选出符合条件的文件。

为什么你之前的写法无效?

你尝试的^(.(?<=_all_|_team_))*?$逻辑完全偏离了需求:

  • 这个正则要求每一个字符的前面都必须存在_all_或_team_,这显然不是我们要的——我们只需要文件名里至少有一处出现这两个带下划线的子串就行,而非每个字符都满足这个苛刻的前置条件。
  • 正向后顾(?<=...)的应用场景不对,它是用来检查当前位置之前的局部内容,没法用来判断整个字符串中是否存在目标子串。

验证示例

以下文件名会被匹配:

  • Q1_ALL_sales.csv
  • team_project_report.xlsx
  • data_all_team_2024.txt
  • backup_ALL_archive.zip

以下文件名不会被匹配:

  • customer_summary.pdf
  • project_data_2024.csv
  • all_team_report.csv(缺少前后下划线,不符合_all_/_team_的格式)

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 09:22:35