Попытка добавить тег к входящему файлу потока nifi json.
Вход:
[{"HIT":"DUMMY_3","BatchId":"jkajks981n-1280189nd-129dnbj-2349nbfk","Id":"81274376231"}]
Ожидаемый результат:
[{"nifi_received_ts_est":"2018-10-04 09:31:50.108","HIT":"DUMMY_3","BatchId":"jkajks981n-1280189nd-129dnbj-2349nbfk","Id":"81274376231"}]
Пробовал разные методы, и сейчас я близок к этому:
Search Value: ^([^\[]*)
Replacement Value: [{"nifi_received_ts_est":"${now():format("yyyy-MM-dd HH:mm:ss.SS")}"\,$2
Replacement Strategy: Regex Replace
Evaluation Mode: Entire Text
Но результат не такой, как ожидалось. попадая ниже:
[{"nifi_received_ts_est":"2018-10-04 09:31:50.108",$2[{"HIT":"DUMMY_3","BatchId":"jkajks981n-1280189nd-129dnbj-2349nbfk","Id":"81274376231"}]
Никогда не был хорош в регулярном выражении ... :( Может ли кто-нибудь помочь с правильной фразой для поиска и замены? Также, если кто-то может объяснить регулярное выражение и то, как выполняется группировка, это тоже поможет. Возможно, хорошая справочная таблица. сайт для тестирования и анализа конкретных выражений регулярного выражения nifi?
РЕШЕНИЕ: Если это поможет кому-нибудь найти шаблон: Значение поиска: ^ (. *?) [{(Будет выполнять ленивый поиск, пока не найдет первый '[{' и группирует все до него в $ 1), поэтому замена будет: $ 1 {"nifi_received_ts_est ":" $ {now (): format ("гггг-ММ-дд ЧЧ: мм: сс.СС")} ",