首页 > 解决方案 > Powercenter Informatica REG_EXTRACT 问题

问题描述

我在Powercenter Informatica的表达式转换中遇到关于REG_EXTRACT函数的问题。当要捕获的值以特殊字符(例如:ı 或 İ)结尾时,它无法捕获第一次出现。

成功检索KEY2as的值VALUE2

REG_EXTRACT('KEY1~VALUE1_ı|KEY2~VALUE2|KEY3~VALUE3|', '.*KEY2~(.*?)\|.*')

的值KEY1应该是VALUE1_ı,但结果是VALUE1_ı|KEY2~VALUE2

REG_EXTRACT('KEY1~VALUE1_ı|KEY2~VALUE2|KEY3~VALUE3|', '.*KEY1~(.*?)\|.*')

标签: regexinformaticainformatica-powercenter

解决方案


我建议使用

REG_EXTRACT('KEY1~VALUE1_ı|KEY2~VALUE2|KEY3~VALUE3|', 'KEY1~([^|]*)', 1)

请参阅正则表达式演示。最后一个参数 ( 1) 告诉REG_EXTRACT我们只获取 Group 1 的值。

KEY1~([^|]*)则表达式匹配KEY1~然后捕获除|第 1 组之外的任何零个或多个字符。


推荐阅读