首页 > 解决方案 > 从出现在特定单词之后的字符串中提取值

问题描述

content_idjson 脚本作为字符串传递,我需要在进一步映射之后提取数值。下面的示例数据:

{"url": {"phone": "videos/hssportint/hssport/jocaasd/6_3818e20a9e/19098311205/phone", "tv": "/mnt/c81292786e1e368e12144c302007/output/", "sample_aspect_ratio": "1:1", "subsample": 25,  "content_id": "1000231205", "encryption_enabled": false, "non_ad_time_intervals": [2330.68, 2898.36]], "packager_path": "/opt/bento4"}}], "vmaf_path": "/vmaf"}

参数是动态的,因此我无法使用 substr 函数或 count 在特殊字符出现一定次数后提取。

标签: regexhive

解决方案


通过正则表达式和子字符串函数的组合找到了一种昂贵的方法

substr(split(regexp_extract(message,'content_id([^&]*)'), '"')[3],1) as content_id

推荐阅读