Pentaho使用replace in string替换整段字段短语未生效问题咨询
Pentaho字段整段内容完全替换解决方案
你使用Replace in String组件仅实现部分内容替换,是因为该组件默认替换字段内所有命中的子串,不会校验字段内容是否和搜索内容完全一致,要实现整段匹配替换可使用以下两种方案:
方案1:条件判断赋值(适配性最高,不易出错)
操作步骤:
- 新增
User Defined Java Expression组件或者Calculator组件 - 写入判断逻辑:如果目标字段完全等于待替换的原内容,则返回替换后的目标值,否则返回原始值,示例表达式如下:
目标字段名.equals("Good Morning everybody") ? "Hello" : 目标字段名 - 用生成的新字段覆盖原有目标字段即可
方案2:修改Replace in String配置(操作更简便)
利用正则的首尾锚定符实现整段匹配,调整组件配置如下:
- 搜索内容填写:
^Good Morning everybody$,其中^代表字符串起始位置,$代表字符串结束位置,仅当字段内容和中间的搜索内容完全一致时才会触发替换 - 替换内容填写
Hello - 勾选组件配置中的
使用正则表达式(Use regular expression)选项后运行即可
内容的提问来源于stack exchange,提问作者Leonardo Rodriguez Silva
相关产品推荐
相关产品推荐

