nifi getFile не выбирает файл regex не работает - PullRequest
1 голос
/ 03 апреля 2020

Я использую следующее в качестве фильтра пути => .*\/(?i)(logs|testing_do_not_delete)\/.*

Я просто хочу читать файлы из вышеупомянутых 2 папок.

Нифи не читает никаких файлов. не из любой папки. У меня есть 4 папки

logs
log123
testing_do_not_delete
testing_do_not_delete_bkp

, когда я удаляю фильтр пути, процессор читает файл из всех 4 папок.

1 Ответ

1 голос
/ 04 апреля 2020

Вам необходимо сопоставить всю строку и убедиться, что, если есть слово, которое вы ищете, оно находится между началом / концом строки или косой чертой.

Вы можете использовать

(?i)^(?:.*/)?(?:logs|testing_do_not_delete)(?:/.*)?$

См. Демонстрационную версию regex .

Подробности

  • (?i) - режим без учета регистра для
  • ^ - начало строки
  • (?:.*/)? - необязательная последовательность ((?:...)?) любых 0+ символов, кроме символов разрыва строки, как можно большего числа (.*), за которым следует / char
  • (?:logs|testing_do_not_delete) - группа без захвата, соответствующая либо logs, либо testing_do_not_delete
  • (?:/.*)? - необязательная последовательность любых 0+ символов, кроме символов разрыва строки как можно больше, за которым следует / char
  • $ - конец строки.
...