程序开发 · 2025年4月25日

Couchbase N1QL – 内联正则表达式捕获组替换?

当前位置: > > > > Couchbase N1QL – 内联正则表达式捕获组替换?

来源:stackoverflow
2024-04-25 16:09:26
0浏览
收藏

一分耕耘,一分收获!既然打开了这篇文章《Couchbase N1QL – 内联正则表达式捕获组替换?》,就坚持看下去吧!文中内容包含等等知识点…希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

UPDATE SOME_BUCKET as doc USE KEYS ["USER_ACCESS::123456::SOME_ROLE", "MORE KEYS HERE...", etc]
loc.id = REGEXP_REPLACE(loc.id, "(.*) - (.*)", "$1-$2") FOR loc IN locations END
RETURNING doc

此处设置“loc.id”只是为其分配字符串文字替换值,“$1-$2” 而不是对捕获组的反向引用

couchbase server 运行 golang 正则表达式语法,这显然可能不支持反向引用?还有什么替代方案吗?

解决方案

更新所需的 set、unset 子句 检查示例3

UPDATE SOME_BUCKET as doc 
USE KEYS ["USER_ACCESS::123456::SOME_ROLE", "MORE KEYS HERE...", etc]
SET loc.id = REGEXP_REPLACE(loc.id, "(.*) - (.*)", "$1-$2") FOR loc IN locations END
RETURNING doc;

今天关于《Couchbase N1QL – 内联正则表达式捕获组替换?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!