一条Apache-NiFi语句中的多个替换正则表达式

我有以下格式的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

ghostap 回答:一条Apache-NiFi语句中的多个替换正则表达式

Nifi使用Java正则表达式

在使用记录处理后,这应该对您有效:

${field.value:replaceFirst('^(021|085)?.*','$1')}

()?可以在字符串021的开头捕获085^

替换-$1-是第一批


PS:https://regex101.com/之类的网站有助于了解正则表达式

本文链接:https://www.f2er.com/3140218.html

大家都在问