PDI的“替换为字符串”步骤与正则表达式替换两次

时间:2015-12-10 11:04:26

标签: regex string pentaho pdi

我要做的只是将我的现有字符串“./executable.sh”的参数连接起来,以便输出行集看起来像那样

./executable.sh argument1
./executable.sh argument3
./executable.sh argument2
  ...
  ...

下面是“字符串替换”步骤。 搜索设置为(。*)。替换字段设置为./executable.sh $ 1

Replace in string step

我得到的结果是:

./executable.sh argument1./executable.sh 
./executable.sh argument2./executable.sh 
./executable.sh argument3./executable.sh 

为什么我在更换结束时添加了初始字符串?

谢谢。

1 个答案:

答案 0 :(得分:1)

这里的问题是你的正则表达式可以匹配字符串后匹配的空/空字符串(即后台引擎将字符串分成两部分:所有字符和终止空字符串,因此你得到两个被替换的比赛。)

为避免这种情况,您需要使用

(.+)

^(.*)$

(.+)模式匹配换行符以外的1个或多个字符,^(.*)$匹配从字符串开头(^)到换行符之外的0或更多字符。结束($)。第二种模式中的显式锚点有助于摆脱输入末尾的空字符串匹配。