regex - 从出现在特定单词之后的字符串中提取值
问题描述
content_id
json 脚本作为字符串传递,我需要在进一步映射之后提取数值。下面的示例数据:
{"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 在特殊字符出现一定次数后提取。
解决方案
通过正则表达式和子字符串函数的组合找到了一种昂贵的方法
substr(split(regexp_extract(message,'content_id([^&]*)'), '"')[3],1) as content_id
推荐阅读
- algorithm - 袋子里的代币
- python - 为什么 _joint_log_likelihood 有很大的负值
- corda - 新合同的错误
- javascript - 完成后序列不重置
- javascript - 同样是three.js创建的三维场景,chrome下清晰,firefox不清晰
- c++ - 声明一个没有默认构造函数的字段
- python - 如何通过 Scrapy 点击获取数据
- azure-sql-database - Azure 托管需要哪些带有 EF 的 Asp.net 核心 Web 应用程序
- ios - ScrollView v 自定义转换 (Swift)
- ios - Obj-c - 两个不同的 tableView 单元格相互重叠?