json - 正则表达式提取 json NiFi 中的字段
问题描述
初学者正则表达式问题。我的 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"
}
]
]
- 获取第一个 id:“12erf3-312331-233”(这是一个 uuid)
- 获取所有第二个数组: [ { "id": "1234" ... "id3": "5555" } ]
解决方案
为了实现您的需要,您可以使用 ReplaceText 处理器。看看下面的配置。搜索值将是(?s).*("id": )(".*").*}.*(\[.*\]).*\]
和替换值:{$1$2,data:$3}
。注意选择评估模式为“整个文本”。要轻松检查正则表达式,您可以使用我使用过的链接:https ://regex101.com/r/p6T2Vw/1
推荐阅读
- javascript - 删除可拖动部分以在 JQUERY 中进行排序
- python - 帮助在准确的时间运行几行代码
- pandas - 熊猫将值从一列复制到另一列,如果一个存在而另一个是 NaN/Null
- javascript - 反应:未捕获的类型错误:无法读取 mapStateToProps 中未定义的属性“名称”
- c# - 如何解决此“未指定身份验证方案,并且未找到 DefaultChallengeScheme”
- python - 无法在带有 Errno 97 的 AWS lambda 上使用 wget.download 下载文件
- mysql - 如何避免在这个 sql 中使用 mysql 函数?
- typescript - 如何避免`后续的属性声明必须具有与接口相同的类型`
- laravel - 使用 Livewire 和 Filepond 编辑模型时处理预先存在的图像
- c++ - 为什么括号中的 AND 与没有的评估不同?