You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中使用regex_replace提取DATA相关内容的技术求助

解决方案

原始数据集

1. '{SHEET,2730377,SHEET,5708283,DATA,3015937}'
2. '{SHEET,2730377,SHEET,5708283,DATA,3015937,DATA,0010965}'
3. '{SHEET,5708283,DATA,3015937,DATA,0010965}'
4. '{SHEET,5708283,DATA,3015937}'

期望结果

1. {DATA,3015937}
2. {DATA,3015937,DATA,0010965}
3. {DATA,3015937,DATA,0010965}
4. {DATA,3015937}

问题分析

你之前的正则仅替换了第一个匹配的SHEET,7位数字,,且未覆盖末尾无逗号的SHEET,7位数字场景,导致残留未替换内容。

正确正则表达式方案

使用带全局替换标志的正则,匹配所有SHEET,7位数字(无论后面是逗号还是紧跟闭合大括号):

regexp_replace(your_column, 'SHEET,\d{7}(?:,|(?=}))', '', 'g')

正则说明

  • SHEET,\d{7}:精准匹配"SHEET,"后接7位数字的固定格式
  • (?:,|(?=})):非捕获组,匹配数字后的逗号,或数字后紧跟闭合大括号的情况(正向前瞻,不消耗}字符)
  • 'g':全局替换标志(PostgreSQL中需显式指定,确保替换所有匹配项)

效果验证

对每条原始数据应用该语句后,会精准移除所有SHEET相关片段,完整保留所有DATA,7位数字的内容,完全符合期望结果。

内容的提问来源于stack exchange,提问作者Jim Macaulay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 20:55:54