【发布时间】:2017-09-21 22:09:10
【问题描述】:
我也有同样的问题。
以下在 NiFi ReplaceText 处理器中效果很好
流文件内容:
US0706003247984600Z1Z000123371K
US0706003247984600Z1Z000125491K
US0706003247984600Z1Z000125596K
搜索值:
(.{2})(?:.{4})(.{6})(.{2})(.{4})(.{6})(.{6})(.{1})
替换值:{col_foo1:$1,col_foo3:$2,col_foo4:$3,col_foo5:$4,col_foo6:$5,col_foo7:$6,col_foo8:$7},
输出:{col_foo1:US,col_foo3:003247,col_foo4:98,col_foo5:4600,col_foo6:Z1Z000,col_foo7:123371,col_foo8:K},
{col_foo1:US,col_foo3:003247,col_foo4:98,col_foo5:4600,col_foo6:Z1Z000,col_foo7:125491,col_foo8:K},
{col_foo1:US,col_foo3:003247,col_foo4:98,col_foo5:4600,col_foo6:Z1Z000,col_foo7:125596,col_foo8:K},
然而
我需要将搜索值存储在属性中(例如 search.value),并将替换值存储在属性中(例如 replace.value),这将通过配置文件传入。
流文件内容:
US0706003247984600Z1Z000123371K
US0706003247984600Z1Z000125491K
US0706003247984600Z1Z000125596K
搜索值:${search.value}
search.value 属性:(.{2})(?:.{4})(.{6})(.{2})(.{4})(.{6})(.{6})(.{1})
替换值:${replacement.value}
replacement.value 属性:{col_foo1:$1,col_foo3:$2,col_foo4:$3,col_foo5:$4,col_foo6:$5,col_foo7:$6,col_foo8:$7},
输出:US0706003247984600Z1Z000123371K
US0706003247984600Z1Z000125491K
US0706003247984600Z1Z000125596K
which 似乎表明每个属性值的正则表达式内容没有被正确评估。
非常感谢任何想法。
【问题讨论】:
标签: regex apache-nifi