RegEx для извлечения текста из файла в NiFi - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть ответ в формате JSON, как показано ниже, и я хочу извлечь только текст, следующий за текстом, из файла с помощью процессора extratext в NIFI.Но это говорит о недопустимом выражении Java.

Ответ JSON

"17" : {
  "columnId" : 17,
  "columnName" : "id",
  "value" : "1234:;5678"
}

"17" : {
  "columnId" : 17,
  "columnName" : "id",
  "value" : "1234:;5678"
},
"19" : {
  "columnId" : 19,
  "columnName" : "HelloWorld",
  "value" : "Test 1:;34130"
},
"21" : {
  "columnId" : 21,
  "columnName" : "Testing",
  "value" : "Test"
}
"17" : {
  "columnId" : 17,
  "columnName" : "id",
  "value" : "1299:;6775"
},
"19" : {
  "columnId" : 19,
  "columnName" : "HelloWorld",
  "value" : "Test 2.:;34147"
},
"21" : {
  "columnId" : 21,
  "columnName" : "Testing",
  "value" : "Test"
}
"17" : {
  "columnId" : 17,
  "columnName" : "id",
  "value" : "1299:;6775"
},
"19" : {
  "columnId" : 19,
  "columnName" : "HelloWorld",
  "value" : "Test.:;34147"
},
"21" : {
  "columnId" : 21,
  "columnName" : "globalregions",
  "value" : "Test"
}

"

Я пробовал выражение:

"17" : {(.*?)\}. 

Не работает.

Ожидаемый результат должен быть: -

"17" : {
      "columnId" : 17,
      "columnName" : "id",
      "value" : "1234:;5678"
    }
"17" : {
      "columnId" : 17,
      "columnName" : "id",
      "value" : "1299:;6775"
    }

1 Ответ

2 голосов
/ 26 апреля 2019

обычно у вас должны быть уникальные ключи для объекта json.

и в вашем json есть несколько ключей "17" в одном и том же объекте ...

, однако следующее регулярное выражение должно работать дляваш json: "17"\s*:\s*\{[^}]*\}

вы можете попробовать: https://regex101.com/r/8RiPHu/1/

...