如何在Pentaho PDI中获取点字符前的文本?
Pentaho PDI提取点号前字符串的高效实现方法
推荐组件及操作示例
1. Regex Evaluator组件(最精准)
你之前用[^.]*没出结果,核心是没配置捕获分组。正则里的分组就是用()把要提取的内容圈起来,组件靠这个识别要输出的内容。
操作步骤:
- 把Regex Evaluator拖进转换,连好输入数据流
- 组件配置:
- 目标字段:填一个新字段名,比如
filename_prefix - 要评估的字段:选你存
GHIJ.txt的原字段(比如original_file) - 正则表达式:
^(.*?)\.(解释:^匹配开头,.*?非贪婪匹配到第一个.,()是捕获分组,\.转义匹配点号) - 捕获组索引:填
1(我们只定义了1个分组,指定索引1就能提取这个分组的内容)
- 目标字段:填一个新字段名,比如
- 运行后,
filename_prefix字段就会得到GHIJ
2. Replace in String组件(最直观)
不想纠结正则分组的话,用这个组件更简单:
操作步骤:
- 拖入Replace in String组件
- 配置:
- 字段:可以选原字段直接修改,也勾选「创建新字段」保留原数据
- 查找内容:
\..*(匹配点号及后面所有内容) - 替换内容:留空(把匹配到的部分删掉,剩下的就是点号前的字符串)
- 勾选「正则表达式」选项
- 运行后就能得到目标结果
GHIJ
关于Regex Evaluator的分组说明
分组就是用()标记你需要提取的特定片段,组件必须知道你要取第几个分组的内容(索引从1开始),否则无法返回有效结果。你之前的正则没有分组,组件不知道该返回什么,所以没输出。加上分组并指定索引后就能正常工作。
内容的提问来源于stack exchange,提问作者Vasanth
相关产品推荐
相关产品推荐

