我有以下格式的csv。
id,mobile
1,02146477474
2,08585377474
3,07646474637
4,02158789566
5,04578599525我想要添加一个新的列,并将前面的3个数字添加到该列(对于特定情况和所有其他NOT_VALID字符串)。因此,结果应该是:
id,number,provider
1,02146477474,021
2,08585377474,085
3,07646474637,NOT_VALID
4,02158789566,021
5,04578599525,NOT_VALID我可以用下面的正则表达式来替换它。但我想用所有可能的对话一步一步。使用UpdateRecord处理器。
${field.value:replaceFirst('085[0-9]+','085')}当我用这样的东西时:
${field.value:replaceFirst('085[0-9]+','085'):or(${field.value:replaceFirst('086[0-9]+','086')}`)}这将全部替换为false。
发布于 2019-11-08 05:49:07
Nifi使用Java regex
当您使用记录处理时,这应该适用于您:
${field.value:replaceFirst('^(021|085)?.*','$1')}()组?可选择地在字符串^的开头捕获021或085。
替代者$1是第一组。
PS:像https://regex101.com/这样的站点有助于理解regex
https://stackoverflow.com/questions/58760602
复制相似问题