在 json NiFi 中提取字段的正则表达式

Regex to extract fields in json NiFi

RegExp 初学者问题。我的 NiFi ExtractText 中有一个 JSON,我想提取 2 个字段。我将如何使用正则表达式来执行此操作?

[
  {
    "id": "12erf3-312331-233"
  },
  [
    {
      "id": "1234",
      "id2": "1234",
      "id3": "1234"
    },
    {
      "id": "1234",
      "id2": "1234",
      "id3": "1234"
    },
    {
      "id": "1234",
      "id2": "1234",
      "id3": "1234"
    },
    {
      "id": "1234",
      "id2": "1234",
      "id3": "5555"
    }
  ]
]
  1. 获取第一个id:“12erf3-312331-233”(这是一个uuid)
  2. 获取所有第二个数组:[{ "id": "1234" ... "id3": "5555" } ]

要实现您的需要,您可以使用 ReplaceText 处理器。看看下面的配置。搜索值将是 (?s).*("id": )(".*").*}.*(\[.*\]).*\],替换值:{,data:}。注意选择 Evaluation Mode 为“Entire text”。 要轻松检查正则表达式,您可以使用 link 我已经使用过:https://regex101.com/r/p6T2Vw/1