Почему это регулярное выражение не работает в моем рабочем процессе Nifi? - PullRequest
1 голос
/ 13 мая 2019

Я хотел бы извлечь некоторый текст из файла Excel (после процессоров ConvertToCsv и SplitText).После разделенного процессора некоторые строки выглядят так: «Компетенции: компетенция1, компетенция2, компетенция3» со списком между запятыми.Я просто хочу получить список, чтобы потом разделить его.

Я протестировал это простое регулярное выражение в Regex101: «Compétences clés: (. *)», Которое принимает все после этих терминов, поэтому возвращает список.Но когда я пробую это в NiFi, даже когда предыдущие шаги работают, я ничего не получаю в своих потоковых файлах.

Я что-то не так делаю в конфигурации процессоров?Чего мне не хватает?

Рабочий процесс NiFi

Окно свойств ExtractText

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Во-первых, прикрепленный образ рабочего процесса не имеет полного потока, поэтому я не уверен, что произойдет после процессора ExtractText.

Также вы упомянули, что вы ничего не получаете в файлах потока от процессора ExtractText.Итак, я предположил, что вы хотите, чтобы результатом выражения регулярного выражения был новый файл потока, который является списком.- ответ основан на этом;Если это не то, что вам нужно, пожалуйста, дайте мне знать.

ExtractText Processor: Оценивает одно или несколько регулярных выражений относительно содержимого FlowFile.Результаты этих регулярных выражений присваиваются атрибутам FlowFile. Имя свойства отображается на имя атрибута, в которое будет помещен результат.

Согласно описанию, результат регулярного выражения сохраняетсяв атрибуте файла потока;'regex' в вашем случае, и фактический файл потока с измененными атрибутами направляется в нисходящий процессор.

Чтобы работать со значением этого атрибута в качестве файла потока, создайте новый файл потока, в котором в качестве содержимого используется только значение атрибута, используя процессор ReplaceText.

Поток NiFi

Процессор ReplaceText

В случае успеха процессор ReplaceText отправит обновленный файл потока в последующий процессор.

0 голосов
/ 23 мая 2019

Я нашел, откуда возникла проблема.Очевидно, это проблема кодирования, и акценты неправильно читаются в моем потоке данных, поэтому «Compétences clés» ничего не соответствует.Но при попытке с "Comp.tences cl.s", это работает.Для следующего я действительно использовал процессор ReplaceText для получения значений атрибутов.

...