如何在Snowflake中用正则提取JSON的dump字段内容?
提取Snowflake中JSON字段的指定片段
正则表达式方案
如果一定要用REGEXP_SUBSTR实现,你可以使用以下正则匹配"dump":和,"ec"之间的内容:
CREATE OR REPLACE TABLE table2 AS SELECT REGEXP_SUBSTR(col1, '"dump":\\s*(.*?)\\s*,"ec"', 1, 1, '', 1) AS dump FROM table1;
- 正则说明:
"dump":\\s*:匹配"dump":及后面可能的空白字符(.*?):非贪婪匹配任意字符(直到遇到下一个匹配项),用括号标记为捕获组\\s*,"ec":匹配可能的空白字符和,"ec"- 最后一个参数
1表示提取第一个捕获组的内容
更可靠的JSON原生函数方案
由于正则处理JSON容易因为转义字符、嵌套结构出错,更推荐用Snowflake原生的JSON解析函数,无需正则:
CREATE OR REPLACE TABLE table2 AS SELECT PARSE_JSON(col1):dump::STRING AS dump FROM table1;
这个方法直接解析JSON结构,提取dump字段的值,稳定性和效率都更高。
内容的提问来源于stack exchange,提问作者Prachi
相关产品推荐
相关产品推荐

