用于获取文件的Case Insensitive Regex表达式

时间:2015-01-25 17:29:14

标签: kettle pdi

我有一个场景,我从文件夹中获取数据加载的文件,其命名约定为。 Customer _。 .txt.But我也想让这个表达式不区分大小写,所以如果来自任何名为CUSTOMER_1234的文件。它也会接受并相应处理

1 个答案:

答案 0 :(得分:1)

尝试以下正则表达式:

(?i)customer(?-i).*\.txt

在" get files"的通配符部分中您正在使用的步骤或任何其他正则表达式步骤。这将过滤掉以" customer"开头的文件。或" CUSTOMER"。

附上示例代码here

希望这会有所帮助:)

示例屏幕截图:

enter image description here


根据以下评论修改我以前的答案:

如果您希望匹配模式"客户_"无论区分大小写,首先您可以使用Javascript "匹配" 功能轻松完成。您只需要以大写形式传递文件名并与大写模式匹配。这将很容易获取结果。检查下面的JS剪辑:

var pattern="customer_"; //pattern is the word pattern you want to match

var match_files= upper(files).match(upper(pattern)); // files in the list of files you are getting from the directory

if(upper(match_files)==upper(pattern)){
      //set one flag as 'match'
}
else{
     // set the flag as 'not match'
}

但是如果你只需要使用正则表达式。然后你可以试试下面的正则表达式:

.*(?i)(customer|CUSTOMER).*(?-i)\.txt

这适用于" _123_Customer_1vasd.txt"模式也是如此。

希望这会有所帮助:)