regex - 在 PostGreSQL 中,regexp_replace 的反向引用应该在 CASE 语句中起作用吗?
问题描述
示例(总是选择 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
有没有办法使这项工作?
解决方案
不,不应该。
我也会regexp_match
对 C 之前和 D 之后的东西使用 with groups ,然后使用 CASE 和连接从匹配的部分构造结果。
推荐阅读
- java - Firestore 错误:java.util.UnknownFormatConversionException:Conversion = 'F'
- html - 在 WKWebView 中加载 html 文本
- accessibility - jsx-a117 lint 错误“自动完成属性的格式不正确”
- sql - 对象关闭时不允许 ADODB.Connection 操作
- python-3.x - Python 递归函数的限制(进程以退出代码 139 结束)
- python - Keras Conv2D - ValueError:层顺序的输入0与层不兼容::预期的min_ndim = 4,发现ndim = 3
- c - C 中的重复代码不适用于大量数字
- python - 学习 python - 希望显示从数据库加载到 gui 中的结果
- swift - 如何从 macOS Swift 上的文档目录加载图像?
- reactjs - 在 Redux 中处理数据传递的正确方法是什么