在PostGreSQL中,regexp_replace的反向引用应在CASE语句中起作用吗?

时间:2018-11-19 21:42:58

标签: regex postgresql switch-statement

示例(总是选择ELSE):

SELECT regexp_replace('ABCDEFG','(C)(D)', CASE WHEN '\1' = 'C' THEN '+\2\1+' ELSE '-\1\2-' END);
**returns =>** AB-CD-EFG

SELECT regexp_replace('ABCDEFG','(C)(D)', CASE '\1' WHEN 'C' THEN '+\2\1+' ELSE '-\1\2-' END);
**returns =>** AB-CD-EFG

有没有办法使这项工作成功?

1 个答案:

答案 0 :(得分:1)

不应该。

我也将regexp_match与C之前和D之后的组一起使用,然后使用CASE和串联从匹配的部分构造结果。