如何使用Redshift正则提取数组格式字符串中的数字
Redshift正则提取数组格式字符串内容
如果你的列中存储的是类似[1,2,3]或[1, 2, 3]这类数组格式的字符串,直接使用Redshift的REGEXP_REPLACE函数就能快速提取出中间的逗号分隔值,完全不需要复杂的嵌套CTE或JSON解析逻辑:
基础版(无空格场景)
适用于数组元素间无空格的情况,比如[1,2,3]:
SELECT REGEXP_REPLACE(your_column, '^\[|\]$', '') AS extracted_values FROM your_table;
正则说明:
^\[:匹配字符串开头的左方括号[\]$:匹配字符串结尾的右方括号]|:逻辑或,将匹配到的首尾括号替换为空字符串,得到中间的1,2,3
进阶版(含空格场景)
如果数组元素间有空格,比如[1, 2, 3],可以同时移除空格:
SELECT REGEXP_REPLACE(your_column, '^\[|\]$|\s+', '') AS extracted_values FROM your_table;
新增的\s+会匹配任意数量的空白字符(空格、制表符等),替换后得到无空格的1,2,3
内容的提问来源于stack exchange,提问作者Jwan622
相关产品推荐
相关产品推荐

