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

如何在Snowflake中用正则删除指定相邻重复字符串?

解决方案

针对你的需求,可使用以下Snowflake正则替换语句实现预期效果:

SELECT REGEXP_REPLACE('ABC/DEF-GHI/GHI/IJK-LMN/GHI', '(?<=DEF-GHI)(\/GHI)+(?=\/.*\/GHI)', '') AS cleaned_text;

执行后输出结果为:'ABC/DEF-GHI/IJK-LMN/GHI'

正则逻辑说明

  • (?<=DEF-GHI):后向断言,限定匹配范围仅在DEF-GHI之后,避免误处理其他位置的内容
  • (\/GHI)+:匹配一个或多个连续的/GHI,这部分就是需要删除的重复内容
  • (?=\/.*\/GHI):正向断言,确保匹配的重复/GHI后面存在最终需要保留的/.../GHI结构,不会误删最后一个独立的GHI

你原有正则的问题

你之前的正则([A-Za-z]{3})(\/)\1存在两个核心问题:

  1. 未限定匹配范围,会全局匹配所有XXX/XXX格式的重复内容,不符合仅处理DEF-GHI之后的需求
  2. 逻辑上是将XXX/XXX替换为XXX,但无法区分需要保留的最后一个GHI,会误删目标内容

内容的提问来源于stack exchange,提问作者subhadra srigiriraju

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:04:55