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

Flink SQL中REGEXP_REPLACE是否支持捕获组?用法疑问求助

Flink SQL的REGEXP_REPLACE函数支持捕获组,你的问题出在替换字符串中的捕获组引用未正确转义。

问题原因

在Flink SQL中,字符串里的$属于特殊字符(可能被SQL解析器识别为参数占位符),直接写$1会被当作普通字符串输出,无法触发捕获组的替换逻辑。

正确写法

要正确引用捕获组,需将替换字符串中的$转义为$$,捕获组引用应写成$$1:

select REGEXP_REPLACE('ERR1,ERR2', '([^,]+)', 'AA$$1AA');

执行该语句后会得到预期结果:AAERR1AA,AAERR2AA。

补充说明

  • 捕获组编号从1开始,$$0表示匹配到的整个字符串
  • 如果需要在替换文本中使用普通的$符号,同样需要写成$$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:48:18