Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PostGreSQL中,regexp_的反向引用是否应该替换CASE语句中的work?_Regex_Postgresql_Switch Statement - Fatal编程技术网

在PostGreSQL中,regexp_的反向引用是否应该替换CASE语句中的work?

在PostGreSQL中,regexp_的反向引用是否应该替换CASE语句中的work?,regex,postgresql,switch-statement,Regex,Postgresql,Switch Statement,示例(始终选择ELSE): 有没有办法让这一切顺利进行?不,不应该 我将使用regexp\u match对C之前和D之后的内容进行分组,然后使用大小写和连接从匹配的部分构造结果。WHEN中的“\1”似乎是一个文本,而不是反向引用,但then中的结果可以包含反向引用。我正在使用PostGres 9.4。 SELECT regexp_replace('ABCDEFG','(C)(D)', CASE WHEN '\1' = 'C' THEN '+\2\1+' ELSE '-\1\2-' END); *

示例(始终选择ELSE):

有没有办法让这一切顺利进行?

不,不应该


我将使用
regexp\u match
对C之前和D之后的内容进行分组,然后使用大小写和连接从匹配的部分构造结果。

WHEN中的“\1”似乎是一个文本,而不是反向引用,但then中的结果可以包含反向引用。我正在使用PostGres 9.4。
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